JavaFX - Effects

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

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

将效果应用于节点

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

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

  • 创建节点.

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

  • 设置效果的属性.

  • 将效果应用于节点 setEffect()方法.

创建节点

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

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

//创建图像
Image image = new Image("https://www.it1352.com/green/images/logo.png"); 
//设置图像视图
 ImageView imageView = new ImageView(image); 
//设置图像的位置
 imageView.setX(100); 
 imageView.setY(70); 
//设置图像视图的拟合高度和宽度
 imageView.setFitHeight(200); 
 imageView.setFitWidth(400); 
//设置图像视图的保留率
 imageView.setPreserveRatio(true);

实例化各个类

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

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

Glow glow = new Glow();

设置效果的属性

实例化类后,需要使用效果设置属性它的setter方法.

例如 : 要绘制三维框,您需要传递其宽度,高度和深度.您可以使用各自的setter方法指定这些值,如下所示 :

//设置level属性
 glow.setLevel( 0.9);

向节点添加效果

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

 imageView.setEffect(glow);

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

S.No形状和描述
1Color Adjust

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

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

2Color Input

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

javafx.scene.effect  ColorInput 的类>表示颜色输入效果.

3Image Input

JavaFX中的图像输入效果只是嵌入JavaFX屏幕上的图像.

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

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

4Blend

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

javafx.scene.effect 的名为 Blend 的类表示混合效果.

5Bloom

在应用bloom效果时,节点的某些部分的像素会发光.

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

6Glow

就像bloom一样,Glow效果使给定的输入图像发光,这种效果使输入的亮像素更亮.

名为class包 javafx.scene.effect Glow 呈现发光效果.

7Box Blur

将此模糊效果应用于节点时,它不清楚. Box blur是JavaFX提供的一种模糊效果.在此效果中,当我们将模糊应用于节点时,会使用一个简单的框过滤器.

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

8GaussianBlur

就像Box Blur一样高斯是一种模糊JavaFX中节点的效果. 高斯模糊效应的唯一区别是高斯卷积核用于产生模糊效果.

的名为GaussianBlur的类javafx.scene.effect 表示高斯模糊效果.

9MotionBlur

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

名为 MotionBlur

10Reflection

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

名为的类包 javafx.scene.effect 的反射表示反射效果.

11SepiaTone

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

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

12Shadow

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

名为的类包 javafx.scene.effect 的阴影表示棕褐色调效果.

13DropShadow

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

名为 DropShadow   javafx.scene.effect 的>代表投影效果.

14InnerShadow

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

名为的类软件包 javafx.scene.effect 的InnerShadow 表示内部阴影效果.

15Lighting

灯光效果用于模拟来自光源的光线.有不同种类的光源,即遥远.

名为<包 javafx.scene.effect 的灯光表示灯光效果.

16Light.Distant

在将此效果应用于节点时,会在其上模拟灯光,就像它是由远距离光源生成一样.

遥远的光源 : 距离节点很远的源.在这里,光从光源的一个方向衰减.

javafx.scene.effect <的 Light.Distant 类/b>代表遥远的光源.

17Light.Spot

关于应用此效果在一个节点上,在它上面模拟一个光,好像它是由聚光灯产生的.

聚光源 : 来自该光源的光在所有方向上衰减.光的强度取决于物体与光源的距离.

javafx.scene的名为 Light.Spot 的类.效果代表遥远的光源.

18Point.Spot

申请时这个效果对一个节点,在它上面模拟一个光,好像它是由点光源产生的.

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

包的名称 Point.Spot  javafx.scene .effect 表示点光源.