个性化阅读
专注于IT技术分析

JavaFX混合效果

本文概述

通常, 混合效果产生的输出是由于两个或多个不同输入节点的混合而产生的。它获取两个或更多节点的像素, 根据所应用的混合模式对其进行混合, 并在同一位置生成输出节点。

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

物产

该类包含四个属性, 下表中对它们的设置方法进行了描述。

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

建设者

此类中有三个构造函数。

  1. Blend():使用默认值实例化Blend类。
  2. Blend(BlendMode模式):以指定模式实例化Blend类
  3. Blend(BlendMode模式, BottomInput效果, TopInput效果):使用指定的混合模式, Bottom Input效果和Top Input效果实例化Blend类。

例:

package application;
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 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(); 
}      
publicstaticvoid main(String args[]){ 
launch(args); 
} 
}
JavaFX混合效果

混合模式

JavaFX提供了各种混合模式, 可以使用它们来修改混合效果。

混合模式 描述 输出量
Add 顶部输入的颜色分量被添加到底部输入的颜色分量中。
Blue 仅底部输入的蓝色分量被顶部输入的蓝色分量代替。
COLOR_BURN 底部输入颜色被反转并除以顶部输入颜色分量。再次反转结果以获得输出颜色。
COLOR_DODGE 顶部颜色分量被反转并划分底部颜色分量以产生输出颜色。
DARKEN 选择两个输入分量颜色中较深的颜色以产生最终的颜色。
DIFFERENCE 从较浅的颜色中减去两个输入颜色中较深的颜色, 以产生最终的颜色。
EXCLUSION 将两个输入颜色分量相乘并加倍, 然后从底部颜色分量的总和中减去以产生所需的颜色。
GREEN 底部输入的绿色组件被顶部组件的绿色输入代替。
HARD_LIGHT 根据底色, 输入颜色分量被相乘或加网。
LIGHTEN 两种颜色分量的较浅颜色作为输出产生。
MULTIPLY 两个颜色分量都相乘以产生输出颜色。
OVERLAY 输入的颜色分量将根据底色进行筛选或相乘。
RED 底部输入的红色部分被顶部输入的红色部分代替。
SCREEN 将两个颜色分量反转, 相乘然后再次反转以产生所需的结果。
SOFT_LIGHT 输入的颜色分量变亮或变暗。
SRC_ATOP 位于顶部输入上方的顶部输入部分将被混合。
SRC_OVER 顶部输入混入底部输入。
赞(0)
未经允许不得转载:srcmini » JavaFX混合效果

相关推荐

评论 抢沙发

评论前必须登录!