📜  JavaFX |棕褐色类

📅  最后修改于: 2022-05-13 01:54:54.171000             🧑  作者: Mango

JavaFX |棕褐色类

SepiaTone 类是 JavaFX 的一部分。 SepiaTone 类用于为图像添加类似于古董照片的棕褐色调效果。应用 SepiaTone 效果时,图像上会出现红棕色调。

类的构造函数:

  1. SepiaTone() :创建 SepiaTone 类的新对象。
  2. SepiaTone(double l) :创建具有指定级别的新 SepiaTone 对象。

常用方法:

MethodExplanation
getInput()Returns the value of property input.
setInput(Effect v)Sets the value of property input.
setLevel(double v)Sets the value of level of Sepia Tone object.
getLevel()Returns the value of level of Sepia Tone object.

下面的程序说明了 SepiaTone 类的使用:

  1. 导入图像并为其添加 SepiaTone 效果的Java程序:在该程序中,创建FileInputStream并将图像作为文件的输入。名为image的图像是使用来自文件输入流的输入创建的。从图像中创建图像视图对象并将其添加到VBox 。然后将VBox添加到场景中,并将场景添加到舞台上。使用作为参数传递的指定级别创建SepiaTone效果,并使用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);
        }
    }
    

    输入图像:

    输出:

  2. 用于导入图像并为其设置 SepiaTone 效果的Java程序。可以使用按钮控制 SepiaTone 效果的级别:在此程序中,创建FileInputStream并将图像作为文件的输入。名为image的图像是使用来自文件输入流的输入创建的。从图像中,创建图像视图对象并将其添加到VBox 。然后将 VBox 添加到场景中,并将场景添加到舞台上。使用作为参数传递的指定级别创建 SepiaTone 效果,并使用setEffect()函数将效果设置为图像视图。创建一个名为 button 的 Button,用于增加图像的SepiaTone 。该按钮也被添加到VBox 。使用setLevel()函数增加图像的 SepiaTone 。与按钮相关的事件使用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 event = new EventHandler() {
                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);
        }
    }
    

    输入图像:

    输出:

注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。

参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/SepiaTone.html