📜  JavaFX | BoxBlur 类

📅  最后修改于: 2022-05-13 01:54:45.977000             🧑  作者: Mango

JavaFX | BoxBlur 类

BoxBlur 类是 JavaFX 的一部分。 BoxBlur 使用简单的 Box 过滤器来模糊节点。 BoxBlur 用于在 JavaFX 中实现 Blur。使用简单的框过滤器内核的模糊效果,在两个维度上具有可单独配置的大小,以及控制所产生模糊质量的迭代参数。

BoxBlur 类具有三个组件:

  1. 高度:效果的垂直尺寸。
  2. 宽度:效果的水平尺寸。
  3. 迭代次数:模糊效果的迭代次数。

类的构造函数:

  1. BoxBlur() : 创建一个新的 BoxBlur 对象。
  2. BoxBlur(double w, double h, int i) :创建一个具有指定宽度、高度和迭代次数的新 BoxBlur 对象。

常用方法:

MethodExplanation
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 类的使用:

  1. 导入图像并为其添加 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);
        }
    }
    

    输入图像:

    输出:

  2. 用于导入图像并对其进行模糊效果的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