JavaFX - 效果


效果是增强图形外观的任何操作。在 JavaFX 中,效果是一种应用于节点以增强其视觉外观的算法。Node类的effect 属性用于指定效果。

在JavaFX中,您可以为节点设置各种效果,例如绽放、模糊发光这些效果中的每一个都由一个类表示,并且所有这些类都在名为javafx.scene.effect的包中可用。

将效果应用到节点

您可以使用setEffect()方法将效果应用于节点。对于此方法,您需要传递效果的对象。

要将效果应用于节点,您需要 -

  • 创建节点。

  • 实例化需要应用的效果的相应类。

  • 设置效果的属性。

  • 使用setEffect()方法将效果应用到节点。

创建节点

首先,通过实例化各自的类来在 JavaFX 应用程序中创建节点。

例如,如果您想对应用程序中的图像应用发光效果。首先,您需要通过实例化 Image 类来创建图像节点并设置其视图,如下所示。

//Creating an image 
Image image = new Image("https://www.tutorialspoint.com/green/images/logo.png"); 
       
//Setting the image view 
ImageView imageView = new ImageView(image); 

//Setting the position of the image 
imageView.setX(100); 
imageView.setY(70);  

//setting the fit height and width of the image view 
imageView.setFitHeight(200);
imageView.setFitWidth(400); 

//Setting the preserve ratio of the image view 
imageView.setPreserveRatio(true);  

实例化相应的类

实例化表示需要应用于创建的节点的效果的类。

例如 - 要应用发光效果,您需要实例化Glow类,如以下代码框所示 -

Glow glow = new Glow();

设置效果的属性

实例化该类后,您需要使用其 setter 方法设置效果的属性。

例如 - 要绘制 3 维盒子,您需要传递其宽度、高度和深度。您可以使用各自的 setter 方法指定这些值,如下所示 -

//setting the level property 
glow.setLevel(0.9);

给节点添加效果

最后,您可以使用setEffect()方法将所需的效果应用于节点。例如:要为图像节点设置发光效果,您需要将 Glow 类的对象传递给此方法,如下所示 -

imageView.setEffect(glow); 

JavaFX 效果- 下表列出了 JavaFX 提供的各种效果(类)。这些类存在于名为javafx.scene.effect的包中。

序列号 形状及描述
1 色彩调整

您可以通过应用颜色调整效果来调整图像的颜色。这包括调整每个像素的色调、饱和度、亮度对比度

javafx.scene.effect包中名为ColorAdjust的类表示颜色调整效果。

2 颜色输入

颜色输入效果提供与绘制矩形并用颜色填充它相同的输出。与其他效果不同,如果将此效果应用于任何节点,它仅显示一个矩形框(而不是节点)。此效果主要用于作为其他效果的输入传递。

javafx.scene.effect包中名为ColorInput的类表示颜色输入效果。

3 图像输入

JavaFX 中的图像输入效果只是将图像嵌入到 JavaFX 屏幕中。

就像颜色输入效果(用于将指定的彩色矩形区域作为输入传递给其他效果)一样,图像输入效果用于将指定的图像作为输入传递给另一个效果。

javafx.scene.effect包中名为ImageInput的类表示图像输入效果。

4 混合

一般来说,混合是指两种或多种不同事物或物质的混合物。如果我们应用此混合效果,它将在同一位置获取两个不同输入的像素,并根据混合模式生成组合输出

javafx.scene.effect包中名为Blend的类代表混合效果。

5 盛开

应用光晕效果时,节点某些部分的像素会发光。

javafx.scene.effect包中名为Bloom的类表示绽放效果。

6 辉光

就像绽放一样,发光效果使给定的输入图像发光,此效果使输入的明亮像素更亮。

javafx.scene.effect包中名为Glow的类代表发光效果。

7 盒子模糊

将这种模糊效果应用于节点时,它会变得不清楚。框模糊是JavaFX提供的一种模糊效果。在这种效果中,当我们对节点应用模糊时,会使用一个简单的盒式滤镜。

javafx.scene.effect包中名为BoxBlur的类表示 boxblur 效果。

8 高斯模糊

就像Box Blur Gaussian一样,是JavaFX中模糊节点的效果。高斯模糊效果唯一的区别是使用高斯卷积核来产生模糊效果。

javafx.scene.effect包中名为GaussianBlur的类代表高斯模糊效果。

9 运动模糊

就像高斯效果一样,运动模糊是 JavaFX 中模糊节点的效果。它同样使用高斯卷积核来产生模糊效果,但不同之处在于该效果使用了指定角度的高斯卷积核。

javafx.scene.effect包中名为MotionBlur的类表示运动模糊效果。

10 反射

在 JavaFX 中将反射效果应用于节点时,会在节点底部添加反射效果。

javafx.scene.effect包中名为Reflection的类代表反射效果。

11 棕褐色调

将棕褐色色调效果应用于 JavaFX 中的节点(一般图像)时,它的色调为红棕色。

javafx.scene.effect包中名为SepiaTone的类表示棕褐色调效果。

12 阴影

此效果会创建具有模糊边缘的指定节点的副本。

javafx.scene.effect包中名为Shadow的类表示棕褐色调效果。

13 阴影

将此效果应用于节点时,将在指定节点后面创建阴影。

javafx.scene.effect包中名为DropShadow的类表示投影效果。

14 内心的阴影

将此效果应用于节点时,将在节点边缘内创建阴影。

javafx.scene.effect包中名为InnerShadow的类表示内阴影效果。

15 灯光

照明效果用于模拟来自光源的光。光源有不同种类,即点光源远光源聚光光源

javafx.scene.effect包中名为Lighting的类表示光照效果。

16 光.远

将此效果应用于节点时,会在其上模拟光,就好像它是由远处的光源生成的一样。

远光源- 距离节点较远的光源。在这里,光在来自光源的一个方向上被衰减。

javafx.scene.effect包中名为Light.Distant的类表示远距离光源。

17 号 光点

将此效果应用于节点时,会在其上模拟光,就好像它是由聚光灯生成的一样。

聚光光源- 来自该光源的光在各个方向上衰减。光的强度取决于物体距光源的距离。

javafx.scene.effect包中名为Light.Spot 的类代表远处的光源。

18 点.点

将此效果应用于节点时,会在其上模拟光,就好像它是由点光源生成的一样。

点光源- 来自该光源的光从单个点向所有方向衰减。光的强度取决于物体距光源的距离。

javafx.scene.effect 包中名为Point.Spot 的类表示点光源。