Javafx 简明教程

JavaFX - SepiaTone Effect

褐色调效果通常将图像从黑白颜色更改为红褐色。您可以在 JavaFX(通常是图像)中将褐色调效果应用到节点。

javafx.scene.effect 中名为 SepiaTone 的类表示褐色调效果,此类包含两个属性,它们是:

  1. level - 该属性为双精度类型,表示此效果的强度。此属性的范围为 0.0 到 1.0。

  2. input − 该属性为 effect 类型,它表示怀旧效果的输入。

Example

以下程序是一个演示 JavaFX 怀旧效果的示例。在此示例中,我们使用 ImageImageView 类将以下图像(tutorialspoint 徽标)嵌入 JavaFX 场景中。我们将其置于位置 100, 70,并设置其高度和宽度分别为 200 和 400。

sepiatone

对此图像,我们使用级别值为 0.9 应用怀旧效果。将此代码保存在名为 SepiaToneEffectExample.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);
   }
}

使用以下命令,从命令提示符编译并执行已保存的 java 文件。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls SepiaToneEffectExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls SepiaToneEffectExample

Output

执行后,上述程序会生成如下所示的 JavaFX 窗口。

sepiatone effect