Efectos JavaFX - SepiaTone

Al aplicar el efecto de tono sepia a un nodo en JavaFX (imagen en general), se tonifica con un color marrón rojizo.

La clase nombrada SepiaTone del paquete javafx.scene.effect representa el efecto de tono sepia, esta clase contiene dos propiedades, que son:

  • level- Esta propiedad es de tipo doble que representa la intensidad de este efecto. El rango de esta propiedad es de 0,0 a 1,0.

  • input - Esta propiedad es del tipo efecto y representa una entrada al efecto de tono sepia.

Ejemplo

El siguiente programa es un ejemplo que demuestra el efecto de tono sepia de JavaFX. Aquí, estamos incrustando la siguiente imagen (logotipo de tutorialspoint) en la escena JavaFX usandoImage y ImageViewclases. Esto se hace en la posición 100, 70 junto con la altura de ajuste y el ancho de ajuste 200 y 400 respectivamente.

A esta imagen, estamos aplicando el Efecto de tono sepia con el valor de nivel 0.9. Guarde este código en un archivo con nombreSepiaToneEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.effect.SepiaTone; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.stage.Stage;  

public class SepiaToneEffectExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating an image 
      Image image = new Image("http://www.tutorialspoint.com/images/tp-logo.gif"); 
       
      //Setting the image view 
      ImageView imageView = new ImageView(image); 
      
      //Setting the position of the image  
      imageView.setX(150); 
      imageView.setY(0);
      
      //setting the fit height and width of the image view 
      imageView.setFitHeight(300); 
      imageView.setFitWidth(400); 
      
      //Setting the preserve ratio of the image view 
      imageView.setPreserveRatio(true);    
       
      //Instanting the SepiaTone class 
      SepiaTone sepiaTone = new SepiaTone(); 
      
      //Setting the level of the effect 
      sepiaTone.setLevel(0.8); 
      
      //Applying SepiaTone effect to the image 
      imageView.setEffect(sepiaTone);      
         
      //Creating a Group object  
      Group root = new Group(imageView);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Sepia tone effect example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show();         
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac SepiaToneEffectExample.java 
java SepiaToneEffectExample

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.