JavaFX | clase de floración

La clase Bloom es parte de JavaFX. Bloom es un efecto de alto nivel que hace que las partes más brillantes de la imagen de entrada parezcan brillar, según un umbral configurable. La clase Bloom hereda la clase Effect .

Constructores de la clase:

  1. Bloom() : crea un nuevo objeto Bloom.
  2. Bloom(doble t) : Crea un nuevo efecto Bloom con un umbral especificado.

Métodos comúnmente utilizados:

Método Explicación
obtenerEntrada() Obtiene el valor de la propiedad de entrada
obtenerUmbral() Devuelve el valor del umbral
setInput(Efecto v) Establece el valor de la propiedad de entrada.
establecer umbral (doble v) Establece el valor umbral del efecto.

Los siguientes programas ilustran el uso de la clase Bloom:

  1. Programa Java para importar una imagen y agregarle un efecto de floración: 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, el VBox se agrega a la escena y la escena se agrega al escenario. Se crea un efecto Bloom con un nivel específico 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 bloom 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 bloom_1 extends Application {
      
        // launch the application
        public void start(Stage stage) throws Exception
        {
      
            // set title for the stage
            stage.setTitle("Bloom 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 bloom effect
            Bloom bloom = new Bloom(0.9);
      
            // set effect
            imageview.setEffect(bloom);
      
            // 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 establecerle un efecto de floración, el valor de umbral del efecto de floración se puede controlar con un botón: 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, el VBox se agrega a la escena y la escena se agrega al escenario. Se crea un efecto Bloom con un nivel especificado que se pasa como parámetro y el efecto se establece en la vista de la imagen usando setEffect()función. Se crea un botón llamado Botón que se utiliza para aumentar la floración de la imagen. El botón también se agrega al VBox . La floración de la imagen se incrementa usando la función setThreshold() . Los eventos relacionados con el botón se manejan mediante EventHandler .

    // Java program to import an image and
    // set bloom effect to it. The Threshold
    // value of the bloom effect can be 
    // controlled using the button
    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 bloom_2 extends Application {
      
        double level = 0.1;
      
        // launch the application
        public void start(Stage stage) throws Exception
        {
      
            // set title for the stage
            stage.setTitle("Bloom 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 bloom effect
            Bloom bloom = new Bloom(level);
      
            // create a button
            Button button = new Button("bloom");
      
            // action event
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() {
      
                public void handle(ActionEvent e)
                {
      
                    // increase the level
                    level += 0.1;
                    if (level > 1)
                        level = 0.0;
      
                    // set Level for bloom
                    bloom.setThreshold(level);
                }
            };
      
            // set on action of button
            button.setOnAction(event);
      
            // set effect
            imageview.setEffect(bloom);
      
            // create a VBox
            VBox vbox = new VBox(imageview, button);
      
            // 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/Bloom.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 *