JavaFX Blend类

通常,混合效果产生的输出是两个或多个不同输入节点混合的结果。它采用两个或多个节点的像素,根据应用的混合模式混合它们,并在同一位置生成输出节点。

如果两个图像相互重叠,则混合模式应用于两个图像的重叠区域。

1 Blend类的属性

属性 描述 setter方法
bottomInput 混合操作的底部输入。这是一个对象类型属性。 setBottomInput(Effect value)
mode 输入混合在一起所依据的模式。 setMode(BlendMode value)
opacity 这是 double 类型的不透明度值。 setOpacity(double value)
topInput 混合操作的顶部输入。 setTopInput(Effect Value)

2 Blend类的构造函数

这个类中有三个构造函数。

  1. Blend() :使用默认值实例化 Blend 类。
  2. Blend(BlendMode mode):用指定的模式实例化 Blend 类
  3. Blend(BlendMode mode, Effect BottomInput, Effect TopInput):用指定的混合模式、底部输入效果和顶部输入效果实例化Blend类

3 Blend类的例子

在下面的示例中,ColorAdjust 效果已应用于具有某些属性的图像。效果图像和原始图像之间的比较显示为输出。

package com.yiidian;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.Blend;
import javafx.scene.effect.BlendMode;
import javafx.scene.effect.ColorInput;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class BlendExample extends Application {   
    @Override  
    public void start(Stage primaryStage) {   
        Circle circle = new Circle(150,200,120);         
        circle.setFill(Color.RED);   
        Blend blend = new Blend();    
        ColorInput color = new ColorInput(70, 20, 160, 150, Color.LIMEGREEN);  
        blend.setTopInput(color);  
        blend.setMode(BlendMode.ADD);     
        circle.setEffect(blend);         
        Group root = new Group(circle);   
        Scene scene = new Scene(root, 300,350);    
        primaryStage.setTitle("一点教程网:Blend Example");   
        primaryStage.setScene(scene);   
        primaryStage.show();   
    }        
    public static void main(String args[]){   
        launch(args);   
    }   
}   

输出结果为:

5 混合模式

JavaFX 提供了各种混合模式,可以应用这些模式来修改混合效果。

混合模式 描述 输出结果
Add 顶部输入的颜色分量与底部输入的颜色分量相加。
Blue 只有底部输入的蓝色分量会被顶部输入的蓝色分量替换。
COLOR_BURN 底部输入颜色被反转并除以顶部输入颜色分量。结果再次反转以获得输出颜色。
COLOR_DODGE 顶部颜色分量被反转并划分底部颜色分量以产生输出颜色。
DARKEN 选择两种输入组件颜色中较暗的颜色来生成结果颜色。
DIFFERENCE 从较浅的颜色中减去两种输入颜色中较深的颜色以产生结果颜色。
EXCLUSION 两个输入颜色分量相乘和加倍,然后从底部颜色分量的总和中减去以产生所需的颜色。
GREEN 底部输入的绿色组件被顶部组件的绿色输入替换。
HARD_LIGHT 输入颜色分量根据底部颜色相乘或筛选。
LIGHTEN 两种颜色分量中较浅的颜色作为输出产生。
MULTIPLY 两个颜色分量相乘以产生输出颜色。
OVERLAY 输入颜色分量根据底部颜色进行筛选或相乘。
RED 底部输入的红色分量被顶部输入的红色分量替换。
SCREEN 两个颜色分量都被反转、相乘并再次反转以产生所需的结果。
SOFT_LIGHT 输入颜色分量变亮或变暗。
SRC_ATOP 位于底部输入上方的顶部输入部分被混合。
SRC_OVER 顶部输入与底部输入混合。

热门文章

优秀文章