JavaFX | Clase BoxBlur

La clase BoxBlur es parte de JavaFX. BoxBlur usa un filtro Box simple para desenfocar un Node. BoxBlur se usa para implementar Blur en JavaFX. Un efecto de desenfoque que utiliza un kernel de filtro de cuadro simple, con tamaños configurables por separado en ambas dimensiones y un parámetro de iteración que controla la calidad del desenfoque resultante.

La clase BoxBlur tiene tres componentes:

  1. Altura: La dimensión vertical del efecto.
  2. Ancho: La dimensión horizontal del efecto.
  3. Iteraciones: el número de iteraciones del efecto de desenfoque.

Constructores de la clase:

  1. BoxBlur() : Crea un nuevo objeto de BoxBlur.
  2. BoxBlur(doble w, doble h, int i) : Crea un nuevo objeto BoxBlur con ancho, alto e iteraciones especificados.

Métodos comúnmente utilizados:

Método Explicación
obtenerAltura() Devuelve la dimensión vertical del efecto.
obtenerAncho() Devuelve la dimensión horizontal del efecto.
obtener iteraciones() Devuelve el número de iteraciones del efecto.
obtenerEntrada() Obtiene el valor de la propiedad de entrada.
setInput(Efecto v) Establece el valor de la propiedad de entrada.
setHeight(doble v) Establece la dimensión vertical del efecto.
establecer ancho (doble v) Establece la dimensión horizontal del efecto.
establecer iteraciones (int i) Establece el número de iteraciones del efecto.

Los siguientes programas ilustran el uso de la clase BoxBlur:

  1. Programa Java para importar una imagen y agregarle el efecto Box Blur: en este programa se crea un FileInputStream y se toma una imagen como entrada de un archivo. La imagen denominada imagen se crea utilizando la entrada del flujo de entrada del archivo. A partir de la imagen, se crea un objeto de vista de imagen y se agrega al VBox . Luego se agrega el VBox a la escena y la escena se agrega al escenario. Se crea un efecto BoxBlur con un nivel especificado que se pasa como parámetro y el efecto se establece en la vista de la imagen mediante la función 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);
        }
    }

    Imagen de entrada:

    Producción:

  2. Programa Java para importar una imagen y efecto de desenfoque con tamaños configurables por separado en ambas dimensiones y un parámetro de iteración: en este programa se crea un FileInputStream y se toma una imagen como entrada de un archivo. La imagen llamada imagen se crea utilizando la entrada del flujo de entrada del archivo. A partir de la imagen, se crea un objeto de vista de imagen y se agrega al VBox . Luego se agrega el VBox a la escena y la escena se agrega al escenario. Se crea un efecto BoxBlur con un nivel especificado que se pasa como parámetro y el efecto se establece en la vista de la imagen mediante la función setEffect() . El ancho, la altura y el número de iteraciones del efecto se establecen usando setHeight() ,función setWidth() y setIterations() respectivamente.

    // 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);
        }
    }

    Imagen de entrada:

    Producción:

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea. Utilice un compilador fuera de línea.

Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/BoxBlur.html

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *