JavaFX | Clase de tono sepia

La clase SepiaTone es parte de JavaFX. La clase SepiaTone se usa para agregar un efecto de tono sepia a la imagen que es similar a las fotografías antiguas. Al aplicar el efecto SepiaTone aparece en la imagen un tono marrón rojizo.

Constructores de la clase:

  1. SepiaTone() : Crea un nuevo objeto de la clase SepiaTone.
  2. SepiaTone(doble l) : Crea un nuevo objeto SepiaTone con el nivel especificado.

Métodos comúnmente utilizados:

Método Explicación
obtenerEntrada() Devuelve el valor de la entrada de propiedad.
setInput(Efecto v) Establece el valor de la propiedad de entrada.
setLevel(doble v) Establece el valor del nivel del objeto Tono sepia.
obtenerNivel() Devuelve el valor del nivel del objeto Tono Sepia.

Los siguientes programas ilustran el uso de la clase SepiaTone:

  1. Programa Java para importar una imagen y agregarle un efecto SepiaTone: 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 SepiaTone 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 SepiaTone 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 sepia_tone_1 extends Application {
      
        // launch the application
        public void start(Stage stage) throws Exception
        {
      
            // set title for the stage
            stage.setTitle("SepiaTone 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 sepia_tone effect
            SepiaTone sepia_tone = new SepiaTone(0.5);
      
            // set effect
            imageview.setEffect(sepia_tone);
      
            // 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 configurarle el efecto SepiaTone. El nivel del efecto SepiaTone se puede controlar usando el 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 se agrega el VBox a la escena y la escena se agrega al escenario. Se crea un efecto SepiaTone 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() . Se crea un botón llamado Botón que se usa para aumentar el SepiaTonede la imagen El botón también se agrega al VBox . El SepiaTone de la imagen se incrementa usando la función setLevel() . Los eventos relacionados con el botón se manejan usando EventHandler .

    // Java program to import an image and set
    // SepiaTone effect to it. The Level of the
    // SepiaTone 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 sepia_tone_2 extends Application {
      
        double level = 0.1;
      
        // launch the application
        public void start(Stage stage) throws Exception
        {
      
            // set title for the stage
            stage.setTitle("SepiaTone 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 sepia_tone effect
            SepiaTone sepia_tone = new SepiaTone(level);
      
            // create a button
            Button button = new Button("increase");
      
            // 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 sepia_tone
                    sepia_tone.setLevel(level);
                }
            };
      
            // set on action of button
            button.setOnAction(event);
      
            // set effect
            imageview.setEffect(sepia_tone);
      
            // create a VBox
            VBox vbox = new VBox(imageview, button);
      
            // create a scene
            Scene scene = new Scene(vbox, 300, 300);
      
            // 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/SepiaTone.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 *