JavaFX - 效果

  • 简述

    效果是增强图形外观的任何操作。在 JavaFX 中,效果是一种应用于节点以在视觉上增强其外观的算法。效果属性Node class 用于指定效果。
    在 JavaFX 中,您可以为节点设置各种效果,例如 bloom, blurglow. 这些效果中的每一个都由一个类表示,所有这些类都在名为的包中可用javafx.scene.effect.
  • 将效果应用到节点

    您可以使用 setEffect()方法。到这个方法,你需要传递效果的对象。
    要将效果应用于节点,您需要 -
    • 创建节点。
    • 实例化需要应用的相应效果类。
    • 设置效果的属性。
    • 使用 setEffect() 方法。

    创建节点

    首先,通过实例化它们各自的类在 JavaFX 应用程序中创建节点。
    例如,如果您想对应用程序中的图像应用发光效果。首先,您需要通过实例化 Image 类来创建一个图像节点,并设置其视图,如下所示。
    
    //Creating an image 
    Image image = new Image("https://www.cainiaoya.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 Effects- 下表列出了 JavaFX 提供的各种效果(类)。这些类存在于名为javafx.scene.effect.
    序号 形状和描述
    1 颜色调整
    您可以通过对图像应用颜色调整效果来调整图像的颜色。这包括调整hue, saturation, brightnesscontrast 在每个像素上
    类名为 ColorAdjust 包裹的 javafx.scene.effect 表示颜色调整效果。
    2 颜色输入
    颜色输入效果提供与绘制矩形并用颜色填充相同的输出。与其他效果不同,如果将此效果应用于任何节点,它只会显示一个矩形框(而不是节点)。此效果主要用于作为其他效果的输入传递。
    类名为 ColorInput 包裹的 javafx.scene.effect 表示颜色输入效果。
    3 图像输入
    JavaFX 中的图像输入效果只是将图像嵌入到 JavaFX 屏幕中。
    就像颜色输入效果(用于将指定的彩色矩形区域作为输入传递给其他效果)一样,图像输入效果用于将指定图像作为输入传递给其他效果。
    类名为 ImageInput 包裹的 javafx.scene.effect 表示图像输入效果。
    4 混合
    通常,混合是指两种或多种不同事物或物质的混合物。如果我们应用这种混合效果,它会在同一位置获取两个不同输入的像素,并根据blend mode.
    类名为 Blend 包裹的 javafx.scene.effect 代表混合效果。
    5 盛开
    在应用泛光效果时,节点某些部分的像素会发光。
    类名为 Bloom 包裹的 javafx.scene.effect 代表绽放效果。
    6 辉光
    就像bloom一样,Glow效果使给定的输入图像发光,这种效果使输入的明亮像素更亮。
    类名为 Glow 包裹的 javafx.scene.effect 代表发光效果。
    7 框模糊
    将这种模糊效果应用于节点时,不清楚。Box blur是JavaFX提供的一种模糊效果。在这种效果中,当我们对节点应用模糊时,使用了一个简单的盒式过滤器。
    类名为 BoxBlur 包裹的 javafx.scene.effect 表示 boxblur 效果。
    8 高斯模糊
    就像 Box Blur Gaussian 是一种在 JavaFX 中模糊节点的效果。唯一的区别是Gaussian Blur effect 是使用高斯卷积核来产生模糊效果。
    包中名为 GaussianBlur 的类 javafx.scene.effect 代表高斯模糊效果。
    9 运动模糊
    就像高斯效果一样,运动模糊是一种在 JavaFX 中模糊节点的效果。它还使用了高斯卷积核来产生模糊效果,但不同的是在这个效果中高斯卷积核是在指定角度下使用的。
    类名为 MotionBlur 包裹的 javafx.scene.effect 表示运动模糊效果。
    10 反射
    在 JavaFX 中将反射效果应用于节点时,会在节点底部添加它的反射。
    类名为 Reflection 包裹的 javafx.scene.effect 表示反射效果。
    11 棕褐色调
    将棕褐色调效果应用于 JavaFX 中的节点(一般为图像)时,它会呈现红棕色调。
    类名为 SepiaTone 包裹的 javafx.scene.effect 代表棕褐色调效果。
    12 阴影
    此效果创建具有模糊边缘的指定节点的副本。
    类名为 Shadow 包裹的 javafx.scene.effect 代表棕褐色调效果。
    13 阴影
    将此效果应用于节点时,将在指定节点后面创建阴影。
    类名为 DropShadow 包裹的 javafx.scene.effect 表示阴影效果。
    14 内心的阴影
    将此效果应用于节点时,将在节点的边缘内创建阴影。
    类名为 InnerShadow 包裹的 javafx.scene.effect 代表内阴影效果。
    15 灯光
    灯光效果用于模拟来自光源的光。有不同种类的光源,即point, distantspot.
    类名为 Lighting 包裹的 javafx.scene.effect 代表灯光效果。
    16 光.远
    将此效果应用于节点时,会在其上模拟灯光,就好像它是由远处的光源生成的一样。
    Distant Light Source− 距离节点较远的源。在这里,光从光源向一个方向衰减。
    类名为 Light.Distant 包裹的 javafx.scene.effect 代表远处的光源。
    17 Light.Spot
    将此效果应用于节点时,会在其上模拟灯光,就好像它是由聚光灯生成的一样。
    Spot light Source− 来自该光源的光向各个方向衰减。光的强度取决于物体与光源的距离。
    类名为 Light.Spot 包裹的 javafx.scene.effect 代表远处的光源。
    18 Point.Spot
    将此效果应用于节点时,会在其上模拟灯光,就好像它是由点光源生成的一样。
    Point Light Source− 来自该光源的光从一个点向各个方向衰减。光的强度取决于物体与光源的距离。
    类名为 Point.Spot 包 javafx.scene.effect 代表点光源。