Effets JavaFX - SepiaTone

Lors de l'application de l'effet de ton sépia à un nœud dans JavaFX (image en général), il est tonifié avec une couleur brun rougeâtre.

La classe nommée SepiaTone du forfait javafx.scene.effect représente l'effet de ton sépia, cette classe contient deux propriétés, qui sont -

  • level- Cette propriété est de type double représentant l'intensité de cet effet. La plage de cette propriété est comprise entre 0,0 et 1,0.

  • input - Cette propriété est du type effet et représente une entrée pour l'effet de ton sépia.

Exemple

Le programme suivant est un exemple illustrant l'effet de ton sépia de JavaFX. Ici, nous intégrons l'image suivante (logo tutorialspoint) dans la scène JavaFX en utilisantImage et ImageViewDes classes. Ceci est fait à la position 100, 70 avec la hauteur d'ajustement et la largeur d'ajustement 200 et 400 respectivement.

À cette image, nous appliquons l'effet de ton sépia avec la valeur de niveau 0,9. Enregistrez ce code dans un fichier avec un nomSepiaToneEffectExample.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); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac SepiaToneEffectExample.java 
java SepiaToneEffectExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX comme indiqué ci-dessous.