Module  javafx.graphics
软件包  javafx.scene.effect

Enum BlendMode

  • All Implemented Interfaces:
    SerializableComparable<BlendMode>


    public enum BlendMode
    extends Enum<BlendMode>
    混合模式定义混合效果的输入合成在一起的方式,或者如何将节点混合到场景的背景中。
      import javafx.scene.*;
    import javafx.scene.effect.*;
    import javafx.scene.paint.*;
    import javafx.scene.shape.*;
    
    Rectangle r = new Rectangle();
    r.setX(50);
    r.setY(50);
    r.setWidth(50);
    r.setHeight(50);
    r.setFill(Color.BLUE);
    
    Circle c = new Circle();
    c.setFill(Color.rgb(255, 0, 0, 0.5));
    c.setCenterX(50);
    c.setCenterY(50);
    c.setRadius(25);
    c.setBlendMode(BlendMode.MULTIPLY);
    
    Group g = new Group();
    g.getChildren().add(r);
    g.getChildren().add(c); 
    从以下版本开始:
    JavaFX 2.0
    • Enum Constant Summary

      Enum Constants  
      Enum Constant 描述
      ADD
      来自顶部输入的颜色和alpha分量被添加到从底部输入的颜色和alpha分量。
      BLUE
      底部输入的蓝色分量被顶部输入的蓝色分量替换; 其他颜色成分不受影响。
      COLOR_BURN
      底部输入颜色分量的倒数除以顶部输入颜色分量,然后将其全部反转以产生所得颜色。
      COLOR_DODGE
      底部输入颜色分量被顶部输入颜色分量的倒数除以产生所得到的颜色。
      DARKEN
      选择来自两个输入的颜色分量较暗以产生所得颜色。
      DIFFERENCE
      从较浅的输入中减去两个输入的颜色分量较暗,以产生最终的颜色。
      EXCLUSION
      将两个输入的颜色分量相乘并加倍,然后从底部输入颜色分量的和中减去,以产生所得到的颜色。
      GREEN
      底部输入的绿色分量被顶部输入的绿色分量替换; 其他颜色成分不受影响。
      HARD_LIGHT
      根据顶部输入颜色,输入颜色分量是相乘或屏蔽的。
      LIGHTEN
      来自两个输入的颜色分量的打火机被选择以产生所得到的颜色。
      MULTIPLY
      来自第一输入的颜色分量与来自第二输入的颜色分量相乘。
      OVERLAY
      根据底部输入颜色,输入颜色分量是相乘或屏蔽的。
      RED
      底部输入的红色分量被顶部输入的红色分量代替; 其他颜色成分不受影响。
      SCREEN
      来自两个输入的颜色分量被反转,彼此相乘,并且该结果再次被反转以产生所得到的颜色。
      SOFT_LIGHT
      根据顶部输入颜色,输入颜色分量要么变暗,要么变暗。
      SRC_ATOP
      位于底部输入内部的顶部输入的部分与底部输入混合。
      SRC_OVER
      顶部输入通过底部输入混合。
    • Enum Constant Detail

      • SRC_OVER

        public static final BlendMode SRC_OVER
        顶部输入通过底部输入混合。 (相当于波特 - 达夫“目的地来源”规则。)
      • SRC_ATOP

        public static final BlendMode SRC_ATOP
        位于底部输入内部的顶部输入的部分与底部输入混合。 (相当于Porter-Duff“源头目的地”规则。)
      • ADD

        public static final BlendMode ADD
        来自顶部输入的颜色和alpha分量被添加到从底部输入的颜色和alpha分量。 如果超过1.0的逻辑最大值,结果将被钳位为1.0。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 这种模式在成像软件包中有时被称为“线性闪避”。
      • MULTIPLY

        public static final BlendMode MULTIPLY
        来自第一输入的颜色分量与来自第二输入的颜色分量相乘。 根据SRC_OVER方程将α成分混合。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 这种模式与SCREEN模式的数学相反。
        • 所得颜色总是至少与输入颜色一样暗。
        • 使用完全黑色的顶部输入渲染产生黑色; 用完全白色的顶部输入渲染产生相当于底部输入的结果。
      • SCREEN

        public static final BlendMode SCREEN
        来自两个输入的颜色分量被反转,彼此相乘,并且该结果再次被反转以产生所得到的颜色。 根据SRC_OVER方程将α成分混合。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 这种模式与MULTIPLY模式的数学相反。
        • 所得到的颜色总是至少与任何一种输入颜色一样轻。
        • 用完全白色的顶部输入渲染产生白色; 用完全黑色的顶部输入渲染产生相当于底部输入的结果。
      • OVERLAY

        public static final BlendMode OVERLAY
        根据底部输入颜色,输入颜色分量是相乘或屏蔽的。 根据SRC_OVER方程将α分量混合。

        笔记:

        • 此模式是SCREENMULTIPLY的组合,具体取决于底部的输入颜色。
        • 这种模式与HARD_LIGHT模式的数学相反。
        • 在这种模式下,顶部输入颜色“覆盖”底部输入,同时保留后者的高光和阴影。
      • DARKEN

        public static final BlendMode DARKEN
        选择来自两个输入的颜色分量较暗以产生所得颜色。 根据SRC_OVER方程将α成分混合。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 这种模式与LIGHTEN模式的数学相反。
      • LIGHTEN

        public static final BlendMode LIGHTEN
        来自两个输入的颜色分量的打火机被选择以产生所得到的颜色。 根据SRC_OVER方程将α成分混合。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 这种模式与DARKEN模式的数学相反。
      • COLOR_DODGE

        public static final BlendMode COLOR_DODGE
        底部输入颜色分量被顶部输入颜色分量的倒数除以产生所得到的颜色。 根据SRC_OVER方程将α组分混合。
      • COLOR_BURN

        public static final BlendMode COLOR_BURN
        底部输入颜色分量的倒数除以顶部输入颜色分量,然后将其全部反转以产生所得颜色。 根据SRC_OVER方程将α成分混合。
      • HARD_LIGHT

        public static final BlendMode HARD_LIGHT
        根据顶部输入颜色,输入颜色分量是相乘或屏蔽的。 根据SRC_OVER方程将α成分混合。

        笔记:

        • 此模式是SCREENMULTIPLY的组合,具体取决于顶部输入颜色。
        • 这种模式与OVERLAY模式的数学相反。
      • SOFT_LIGHT

        public static final BlendMode SOFT_LIGHT
        根据顶部输入颜色,输入颜色分量要么变暗,要么变暗。 根据SRC_OVER方程将α成分混合。

        笔记:

        • 这种模式类似于OVERLAY ,但通常产生比OVERLAY “较轻”的结果。
      • DIFFERENCE

        public static final BlendMode DIFFERENCE
        从较浅的输入中减去两个输入的颜色分量较暗,以产生最终的颜色。 根据SRC_OVER等式混合α成分。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 该模式可用于反转底部输入图像的部分,或者快速比较两个图像(相等的像素将导致黑色)。
        • 用完全白色的顶部输入渲染反转底部输入; 用完全黑色的顶部输入渲染产生相当于底部输入的结果。
      • EXCLUSION

        public static final BlendMode EXCLUSION
        将两个输入的颜色分量相乘并加倍,然后从底部输入颜色分量的和中减去,以产生所得到的颜色。 根据SRC_OVER等式混合α成分。

        笔记:

        • 这种模式是可交换的(输入顺序无关紧要)。
        • 此模式可用于反转底部输入的部分。
        • 该模式产生的结果类似于DIFFERENCE ,除了对比度较低。
        • 用完全白色的顶部输入渲染反转底部输入; 用完全黑色的顶部输入渲染产生相当于底部输入的结果。
      • RED

        public static final BlendMode RED
        底部输入的红色分量被顶部输入的红色分量代替; 其他颜色成分不受影响。 根据SRC_OVER方程将α成分混合。
      • GREEN

        public static final BlendMode GREEN
        底部输入的绿色分量被顶部输入的绿色分量替换; 其他颜色成分不受影响。 根据SRC_OVER方程将α成分混合。
      • BLUE

        public static final BlendMode BLUE
        底部输入的蓝色分量被顶部输入的蓝色分量替换; 其他颜色成分不受影响。 根据SRC_OVER方程将α成分混合。
    • 方法详细信息

      • values

        public static BlendMode[] values​()
        按照它们声明的顺序返回一个包含此枚举类型常量的数组。 该方法可用于遍历常量如下:
          for (BlendMode c : BlendMode.values())
            System.out.println(c); 
        结果
        一个包含这个枚举类型的常量的数组,按照它们被声明的顺序
      • valueOf

        public static BlendMode valueOf​(String name)
        以指定的名称返回此类型的枚举常量。 字符串必须完全匹配用于声明此类型的枚举常量的标识符。 (不允许使用外来空白字符。)
        参数
        name - 要返回的枚举常量的名称。
        结果
        具有指定名称的枚举常数
        异常
        IllegalArgumentException - 如果此枚举类型没有指定名称的常量
        NullPointerException - 如果参数为空