Javafx 简明教程
JavaFX - Effects
效果是任何增强图形外观的操作。在 JavaFX 中,效果是一种应用于节点以在视觉上增强其外观的算法。 Node 类的 effect 属性用于指定效果。
在 JavaFX 中,您可以为一个节点设置各种效果,例如 bloom, blur 和 glow 。每种这些效果都由一个类表示,所有这些类都存在于名为 javafx.scene.effect 的包中。
Applying Effects to a Node
您可以使用 setEffect() 方法将效果应用于节点。对于此方法,您需要传入效果对象。
要将效果应用于节点,您需要−
-
Create the node.
-
实例化需要应用的影响的相应类。
-
设置效果的属性。
-
使用 setEffect() 方法向节点应用效果。
Creating the Nodes
首先,通过实例化其相应的类,在 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);
Instantiating the Respective Class
实例化表示需要应用到创建的节点的效果的类。
例如 − 要应用发光效果,你需要实例化 Glow 类,如下面的代码框所示 −
Glow glow = new Glow();
Types of JavaFX Effects
下表列出了 JavaFX 提供的各种效果(类)。这些类存在名为 javafx.scene.effect 的包中。
S.No |
Effect and Description |
1 |
Color Adjust 你可以通过应用颜色调整效果来调整图像颜色。这包括调整每个像素上的 hue, saturation, brightness 和 contrast 包 javafx.scene.effect 中的 ColorAdjust 类表示颜色调整效果。 |
2 |
Color Input 颜色输入效果与绘制矩形并用颜色填充的效果相同。与其他效果不同,如果此效果应用于任何节点,它只显示一个矩形框(而不是该节点)。此效果主要用作其他效果的输入。包 javafx.scene.effect 中的 ColorInput 类表示颜色输入效果。 |
3 |
JavaFX 中的图像输入效果只是将图像嵌入到 JavaFX 屏幕中。与颜色输入效果(用于将指定颜色的矩形区域作为输入传递给其他效果)一样,图像输入效果用于将指定图像作为输入传递给另一个效果。包 javafx.scene.effect 中的 ImageInput 类表示图像输入效果。 |
4 |
Blend 通常,混合表示两种或两种以上不同事物或物质的混合。如果我们应用此混合效果,它将使用同一位置的两个不同输入的像素,并基于 blend mode 生成组合输出。包 javafx.scene.effect 中的 Blend 类表示混合效果。 |
5 |
Bloom 在应用绽放效果时,会让节点部分中的一些像素发光。包 javafx.scene.effect 中的 Bloom 类表示绽放效果。 |
6 |
Glow 与绽放效果一样,发光效果使给定的输入图像发光,此效果会让输入图像中的亮像素更亮。包 javafx.scene.effect 中的 Glow 类表示发光效果。 |
7 |
Box Blur 在应用此模糊效果时,节点变得模糊不清。盒子模糊是 JavaFX 提供的一种模糊效果。在此效果中,当我们对一个节点应用模糊时,会使用一个简单的盒子过滤器。包 javafx.scene.effect 中的 BoxBlur 类表示盒子模糊效果。 |
8 |
GaussianBlur 与盒子模糊一样,高斯模糊是模糊 JavaFX 中节点的效果。在 Gaussian Blur effect 中唯一的区别是,使用高斯卷积核来产生模糊效果。包 javafx.scene.effect 中的 GaussianBlur 类表示高斯模糊效果。 |
9 |
MotionBlur 与高斯模糊效果一样,动态模糊是模糊 JavaFX 中节点的效果。它也使用高斯卷积核来产生模糊效果,但这其中的差别在于此效果中,高斯卷积核与一个指定角度一起使用。包 javafx.scene.effect 中的 MotionBlur 类表示动态模糊效果。 |
10 |
Reflection 在 JavaFX 中对一个节点应用反射效果时,会在该节点底部添加一个反射效果。包 javafx.scene.effect 中的 Reflection 类表示反射效果。 |
11 |
SepiaTone 在 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 的类表示点光。 |