Blend
通常,混合物是指两种或更多种不同物质或物质的混合物。 如果我们应用混合效果,它将采用两个不同输入的像素。 这将在同一位置完成,并根据blend mode生成组合输出。
例如,如果我们绘制两个对象,则顶部对象覆盖底部对象。 在应用混合效果时,基于输入模式组合并显示重叠区域中的两个对象的像素。
包javafx.scene.effect名为Blend的类表示混合效果,该类包含四个属性,它们是 -
bottomInput - 此属性的类型为Effect,它表示混合效果的底部输入。
topInput - 此属性的类型为Effect,它表示混合效果的顶部输入。
opacity - 此属性为double类型,它表示使用顶部输入调制的不透明度值。
mode - 此属性属于BlendMode类型,它表示用于将两个输入混合在一起的模式。
例子 (Example)
以下是展示混合效果的示例。 在这里,我们绘制一个填充了BROWN颜色的圆圈,它上面是一个BLUEVIOLET ColorInput。
我们已经应用了混合效果选择乘法模式在重叠区域中,两个对象的颜色相乘并显示。
将此代码保存在名为BlendEffectExample.java的文件中。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
import javafx.scene.effect.Blend;
import javafx.scene.effect.BlendMode;
import javafx.scene.effect.ColorInput;
import javafx.scene.paint.Color;
public class BlendEffectExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the center of the Circle
circle.setCenterX(75.0f);
circle.setCenterY(75.0f);
//Setting radius of the circle
circle.setRadius(30.0f);
//Setting the fill color of the circle
circle.setFill(Color.BROWN);
//Instantiating the blend class
Blend blend = new Blend();
//Preparing the to input object
ColorInput topInput = new ColorInput(35, 30, 75, 40, Color.BLUEVIOLET);
//setting the top input to the blend object
blend.setTopInput(topInput);
//setting the blend mode
blend.setMode(BlendMode.SRC_OVER);
//Applying the blend effect to circle
circle.setEffect(blend);
//Creating a Group object
Group root = new Group(circle);
//Creating a scene object
Scene scene = new Scene(root, 150, 150);
//Setting title to the Stage
stage.setTitle("Blend Example");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
使用以下命令从命令提示符编译并执行保存的java文件。
javac BlendEffectExample.java
java BlendEffectExample
执行时,上面的程序生成一个JavaFX窗口,如下所示。
混合模式
S.NO | 模式和说明 | output |
---|---|---|
1 | ADD 在此模式下,添加并显示顶部和底部输入的颜色值。 | |
2 | MULTIPLY 在此模式下,顶部和底部输入的颜色值相乘并显示。 | |
3 | DIFFERENCE 在该模式中,在顶部和底部输入的颜色值中,从较亮的一个中减去较暗的一个并显示。 | |
4 | RED 在此模式下,底部输入的红色分量被顶部输入的红色分量替换。 | |
5 | BLUE 在此模式下,底部输入的蓝色分量被顶部输入的蓝色分量替换。 | |
6 | GREEN 在此模式下,底部输入的绿色组件被顶部输入的绿色组件替换。 | |
7 | EXCLUSION 在此模式下,两个输入的颜色分量相乘并加倍。 然后从底部输入的颜色分量之和中减去它们。 然后显示结果。 | |
8 | COLOR_BURN 在此模式中,底部输入颜色分量的倒数除以顶部输入颜色分量。 因此,反转并显示所获得的值。 | |
9 | COLOR_DODGE 在该模式中,底部输入颜色分量除以顶部输入颜色分量的倒数,因此反转并显示所获得的值。 | |
10 | LIGHTEN 在此模式下,显示两个输入中较浅的颜色分量。 | |
11 | DARKEN 在此模式下,显示顶部和底部输入中较暗的颜色分量。 | |
12 | SCREEN 在此模式中,顶部和底部输入的颜色分量被反转,相乘,因此获得的值被反转并显示。 | |
13 | OVERLAY 在此模式下,基于底部输入颜色,将两个输入值的颜色分量相乘或筛选,并显示结果。 | |
14 | HARD_LIGHT 在此模式下,基于顶部输入颜色,将两个输入值的颜色分量相乘或筛选,并显示结果。 | |
15 | SOFT_LIGH 在此模式下,基于顶部输入颜色,两个输入值的颜色分量被软化或减轻,并显示结果。 | |
16 | SRC_ATOP 在此模式下,重叠区域填充底部输入的颜色分量。 虽然非重叠区域填充了顶部输入的颜色分量。 | |
17 | SRC_OVER 在此模式下,顶部输入绘制在底部输入上。 |