JavaFX Blend类
通常,混合效果产生的输出是两个或多个不同输入节点混合的结果。它采用两个或多个节点的像素,根据应用的混合模式混合它们,并在同一位置生成输出节点。
如果两个图像相互重叠,则混合模式应用于两个图像的重叠区域。
1 Blend类的属性
属性 | 描述 | setter方法 |
---|---|---|
bottomInput | 混合操作的底部输入。这是一个对象类型属性。 | setBottomInput(Effect value) |
mode | 输入混合在一起所依据的模式。 | setMode(BlendMode value) |
opacity | 这是 double 类型的不透明度值。 | setOpacity(double value) |
topInput | 混合操作的顶部输入。 | setTopInput(Effect Value) |
2 Blend类的构造函数
这个类中有三个构造函数。
- Blend() :使用默认值实例化 Blend 类。
- Blend(BlendMode mode):用指定的模式实例化 Blend 类
- 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 | 顶部输入与底部输入混合。 |
热门文章
优秀文章