JavaFX | BoxBlur 类
BoxBlur 类是 JavaFX 的一部分。 BoxBlur 使用简单的 Box 过滤器来模糊节点。 BoxBlur 用于在 JavaFX 中实现 Blur。使用简单的框过滤器内核的模糊效果,在两个维度上具有可单独配置的大小,以及控制所产生模糊质量的迭代参数。
BoxBlur 类具有三个组件:
- 高度:效果的垂直尺寸。
- 宽度:效果的水平尺寸。
- 迭代次数:模糊效果的迭代次数。
类的构造函数:
- BoxBlur() : 创建一个新的 BoxBlur 对象。
- BoxBlur(double w, double h, int i) :创建一个具有指定宽度、高度和迭代次数的新 BoxBlur 对象。
常用方法:
Method | Explanation |
---|---|
getHeight() | Returns the vertical dimension of the effect |
getWidth() | Returns the horizontal dimension of the effect |
getIterations() | Returns the number of iterations of the effect |
getInput() | Gets the value of the property input. |
setInput(Effect v) | Sets the value of the property input. |
setHeight(double v) | Sets the vertical dimension of the effect |
setWidth(double v) | Sets the horizontal dimension of the effect |
setIterations(int i) | Sets the number of iterations of the effect |
下面的程序说明了 BoxBlur 类的使用:
- 导入图像并为其添加 Box Blur 效果的Java程序:在该程序中创建FileInputStream并将图像作为文件的输入。名为image的图像是使用来自文件输入流的输入创建的。从图像中,创建图像视图对象并将其添加到VBox 。然后将 VBox 添加到场景中,并将场景添加到舞台上。使用作为参数传递的指定级别创建 BoxBlur 效果,并使用setEffect()函数将效果设置为图像视图。
// Java program to import an image and // add Box Blur effect to it import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.stage.Stage; import javafx.scene.image.*; import javafx.scene.effect.*; import java.io.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; public class box_blur_1 extends Application { // launch the application public void start(Stage stage) throws Exception { // set title for the stage stage.setTitle("BoxBlur Example"); // create a input stream FileInputStream input = new FileInputStream("D:\\GFG.png"); // create a image Image image = new Image(input); // create a image View ImageView imageview = new ImageView(image); // create a box blur effect BoxBlur box_blur = new BoxBlur(); // set effect imageview.setEffect(box_blur); // create a VBox VBox vbox = new VBox(imageview); // create a scene Scene scene = new Scene(vbox, 200, 200); // set the scene stage.setScene(scene); stage.show(); } // Main Method public static void main(String args[]) { // launch the application launch(args); } }
输入图像:
输出:
- 用于导入图像并对其进行模糊效果的Java程序,可在两个维度上分别配置大小和迭代参数:在该程序中,创建FileInputStream并将图像作为文件的输入。名为image的图像是使用来自文件输入流的输入创建的。从图像中,创建图像视图对象并将其添加到VBox 。然后将 VBox 添加到场景中,并将场景添加到舞台上。使用作为参数传递的指定级别创建 BoxBlur 效果,并使用setEffect()函数将效果设置为图像视图。效果的宽度、高度和迭代次数分别使用setHeight() 、 setWidth()和setIterations()函数设置。
// Java program to import an image and blur effect // to it with separately configurable sizes in both // dimensions, and an iteration parameter import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.stage.Stage; import javafx.scene.image.*; import javafx.scene.effect.*; import java.io.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; public class box_blur_2 extends Application { // launch the application public void start(Stage stage) throws Exception { // set title for the stage stage.setTitle("BoxBlur Example"); // create a input stream FileInputStream input = new FileInputStream("D:\\GFG.png"); // create a image Image image = new Image(input); // create a image View ImageView imageview = new ImageView(image); // create a box blur effect BoxBlur box_blur = new BoxBlur(); // set width box_blur.setWidth(10.0f); // set height box_blur.setHeight(10.0f); // set Iterations box_blur.setIterations(3); // set effect imageview.setEffect(box_blur); // create a VBox VBox vbox = new VBox(imageview); // create a scene Scene scene = new Scene(vbox, 200, 200); // set the scene stage.setScene(scene); stage.show(); } // Main Method public static void main(String args[]) { // launch the application launch(args); } }
输入图像:
输出:
注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。
参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/BoxBlur.html