JavaFX 效果 - Bloom

应用 bloom 效果时,节点某些部分的像素会发光。

javafx.scene.effect 中名为 Bloom 的类表示 bloom 效果。此类包含两个属性,即 −

  • input − 此属性属于 Effect 类型,表示 bloom 效果的输入。

  • threshold − 此属性属于 double 类型;表示节点像素亮度的阈值。亮度大于此值的所有像素都会发光。阈值的范围是 0.0 到 1.0。

示例

以下是演示 bloom 效果的示例。我们将绘制一个文本"Welcome to Tutorialspoint",并使用阈值 1.0 对其应用 bloom 效果。

将此代码保存在名为 BloomEffectExample.java 的文件中。

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.Bloom; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Rectangle; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class BloomEffectExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //创建 Text 对象
        Text text = new Text();
        
        //设置文本的字体
        text.setFont(Font.font(null, FontWeight.BOLD, 40));
        
        //设置文本的位置
        text.setX(60);
        text.setY(150);
        
        //设置要嵌入的文本。
        text.setText("Welcome to Tutorialspoint");
        
        //设置文本的颜色
        text.setFill(Color.DARKSEAGREEN);
        
        //实例化 Rectangle 类
        Rectangle rectangle = new Rectangle();
        
        //设置矩形的位置
        rectangle.setX(50.0f);
        r​​ectangle.setY(80.0f);
        
        //设置矩形的宽度
        rectangle.setWidth(500.0f);
        
        //设置矩形的高度
        rectangle.setHeight(120.0f);
        
        //设置矩形的颜色
        rectangle.setFill(Color.TEAL);
        
        //实例化 Bloom 类
        Bloom bloom = new Bloom();
        
        //设置 bloom 的阈值
        bloom.setThreshold(0.1);
        
        //将 bloom 效果应用于文本
        text.setEffect(bloom);
        
        //创建 Group 对象
        Group root = new Group(rectangle, text);
        
        //创建 scene 对象
        Scene scene = new Scene(root, 600, 300);
        
        //设置 Stage 的标题
        stage.setTitle("Sample Application");
        
        //将 scene 添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)的内容
        stage.show();
   }
   public static void main(String args[]){ 
      launch(args); 
   } 
}      

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac BloomEffectExample.java 
java BloomEffectExample

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

绽放效果

javafx_effects.html