效果(Effects)
效果是增强图形外观的任何操作。 在JavaFX中,效果是一种应用于节点以在视觉上增强其外观的算法。 Node类的effect属性用于指定效果。
在JavaFX中,您可以为节点设置各种效果,例如bloom, blur和glow 。 这些效果中的每一个都由一个类表示,所有这些类都可以在名为javafx.scene.effect的包中找到。
将效果应用于节点
您可以使用setEffect()方法将效果应用于节点。 对于此方法,您需要传递效果的对象。
要将效果应用于节点,您需要 -
创建节点。
实例化需要应用的效果的相应类。
设置效果的属性。
使用setEffect()方法将效果应用于节点。
创建节点
首先,通过实例化各自的类来创建JavaFX应用程序中的节点。
例如,如果要将发光效果应用于应用程序中的图像。 首先,您需要通过实例化Image类并设置其视图来创建图像节点,如下所示。
//Creating an image
Image image = new Image("https://www.xnip.cn/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方法设置效果的属性。
例如 - 要绘制三维框,您需要传递其宽度,高度和深度。 您可以使用各自的setter方法指定这些值,如下所示 -
//setting the level property
glow.setLevel(0.9);
添加效果到节点
最后,您可以使用setEffect()方法将所需效果应用于节点。 例如:要将光晕效果设置为图像节点,您需要将Glow类的对象传递给此方法,如下所示 -
imageView.setEffect(glow);
JavaFX Effects - 下表提供了JavaFX提供的各种效果(类)的列表。 这些类存在于名为javafx.scene.effect的包中。
S.No | 形状和描述 |
---|---|
1 | Color Adjust 您可以通过对图像应用颜色调整效果来调整图像的颜色。 这包括调整每个像素的hue, saturation, brightness和contrast 包javafx.scene.effect名为ColorAdjust的类表示颜色调整效果。 |
2 | Color Input 颜色输入效果提供与绘制矩形并用颜色填充相同的输出。 与其他效果不同,如果此效果应用于任何节点,则它仅显示矩形框(而不是节点)。 此效果主要用于传递其他效果的输入。 包javafx.scene.effect名为ColorInput的类表示颜色输入效果。 |
3 | Image Input JavaFX中的图像输入效果只是将图像嵌入到JavaFX屏幕中。 就像颜色输入效果(它用于将指定的彩色矩形区域作为输入传递给其他效果)一样,图像输入效果用于将指定的图像作为输入传递给另一个效果。 包javafx.scene.effect名为ImageInput的类表示图像输入效果。 |
4 | Blend 通常,混合物是指两种或更多种不同物质或物质的混合物。 如果我们应用此混合效果,它会在同一位置获取两个不同输入的像素,并根据blend mode生成组合输出。 包javafx.scene.effect名为Blend的类表示混合效果。 |
5 | Bloom 在应用布隆效果时,使节点的某些部分中的像素发光。 包javafx.scene.effect名为Bloom的类表示bloom效果。 |
6 | Glow 就像bloom一样,Glow效果使给定的输入图像发光,这种效果使输入的亮像素更亮。 包javafx.scene.effect名为Glow的类表示发光效果。 |
7 | Box Blur 在将此模糊效果应用于节点时,使其不清楚。 Box blur是JavaFX提供的一种模糊效果。 在此效果中,当我们将模糊应用于节点时,使用简单的盒式过滤器。 包javafx.scene.effect名为BoxBlur的类表示boxblur效果。 |
8 | GaussianBlur 就像Box Blur Gaussian一样,它可以模糊JavaFX中的节点。 Gaussian Blur effect的唯一区别是高斯卷积核用于产生模糊效果。 包javafx.scene.effect名为GaussianBlur的类表示高斯模糊效果。 |
9 | MotionBlur 就像高斯效果一样,运动模糊是一种模糊JavaFX节点的效果。 它还使用高斯卷积核来产生模糊效果,但不同之处在于高斯卷积核以指定角度使用。 包javafx.scene.effect名为MotionBlur的类表示Motion Blur效果。 |
10 | Reflection 在将反射效果应用于JavaFX中的节点时,会在节点的底部添加对它的反射。 名为Reflection的包javafx.scene.effect表示反射效果。 |
11 | SepiaTone 在将Sepia色调效果应用于JavaFX中的节点(一般图像)时,它会被调整为红棕色。 包javafx.scene.effect名为SepiaTone的类表示棕褐色调效果。 |
12 | Shadow 此效果会创建具有模糊边缘的指定节点的副本。 包javafx.scene.effect名为Shadow的类表示棕褐色调效果。 |
13 | DropShadow 将此效果应用于节点时,将在指定节点后面创建阴影。 包javafx.scene.effect名为DropShadow的类表示投影效果。 |
14 | InnerShadow 将此效果应用于节点时,将在节点边缘内创建阴影。 包javafx.scene.effect名为InnerShadow的类表示内部阴影效果。 |
15 | Lighting 照明效果用于模拟来自光源的光。 有不同种类的光源,即point , distant和spot 。 包javafx.scene.effect名为Lighting的类表示照明效果。 |
16 | Light.Distant 在将该效果应用于节点时,在其上模拟光,就好像它是由远距离光源生成的。 Distant Light Source - 离节点很远的光源。 在这里,光从光源的一个方向衰减。 包javafx.scene.effect名为Light.Distant的类表示远处的光源。 |
17 | Light.Spot 将此效果应用于节点时,会在其上模拟灯光,就好像它是由聚光灯生成的一样。 Spot light Source - 来自此光源的光线在所有方向上衰减。 光的强度取决于物体与光源的距离。 包javafx.scene.effect名为Light.Spot的类表示远程光源。 |
18 | Point.Spot 将此效果应用于节点时,会在其上模拟光,就好像它是由点光源生成的一样。 Point Light Source - 来自此光源的光从单个点向所有方向衰减。 光的强度取决于物体与光源的距离。 包javafx.scene.effect的名为Point.Spot的类表示点光源。 |