- JavaFX 教程
- JavaFX - 首頁
- JavaFX - 概覽
- JavaFX 安裝和架構
- JavaFX - 環境
- JavaFX - 使用 Netbeans 安裝
- JavaFX - 使用 Eclipse 安裝
- JavaFX - 使用 Visual Studio Code 安裝
- JavaFX - 架構
- JavaFX - 應用程式
- JavaFX 2D 形狀
- JavaFX - 2D 形狀
- JavaFX - 繪製線條
- JavaFX - 繪製矩形
- JavaFX - 繪製圓角矩形
- JavaFX - 繪製圓形
- JavaFX - 繪製橢圓
- JavaFX - 繪製多邊形
- JavaFX - 繪製折線
- JavaFX - 繪製三次貝塞爾曲線
- JavaFX - 繪製二次貝塞爾曲線
- JavaFX - 繪製弧形
- JavaFX - 繪製 SVGPath
- JavaFX 2D 物件的屬性
- JavaFX - 描邊型別屬性
- JavaFX - 描邊寬度屬性
- JavaFX - 描邊填充屬性
- JavaFX - 描邊屬性
- JavaFX - 描邊線連線屬性
- JavaFX - 描邊斜接限制屬性
- JavaFX - 描邊線端點屬性
- JavaFX - 平滑屬性
- JavaFX 路徑物件
- JavaFX - 路徑物件
- JavaFX - LineTo 路徑物件
- JavaFX - HLineTo 路徑物件
- JavaFX - VLineTo 路徑物件
- JavaFX - QuadCurveTo 路徑物件
- JavaFX - CubicCurveTo 路徑物件
- JavaFX - ArcTo 路徑物件
- JavaFX 顏色和紋理
- JavaFX - 顏色
- JavaFX - 線性漸變圖案
- JavaFX - 徑向漸變圖案
- JavaFX 文字
- JavaFX - 文字
- JavaFX 效果
- JavaFX - 效果
- JavaFX - 顏色調整效果
- JavaFX - 顏色輸入效果
- JavaFX - 影像輸入效果
- JavaFX - 混合效果
- JavaFX - 輝光效果
- JavaFX - 泛光效果
- JavaFX - 方框模糊效果
- JavaFX - 高斯模糊效果
- JavaFX - 運動模糊效果
- JavaFX - 反射效果
- JavaFX - 棕褐色效果
- JavaFX - 陰影效果
- JavaFX - 投影效果
- JavaFX - 內陰影效果
- JavaFX - 照明效果
- JavaFX - 遠光源效果
- JavaFX - 聚光燈效果
- JavaFX - 點光源效果
- JavaFX - 位移貼圖
- JavaFX - 透視變換
- JavaFX 動畫
- JavaFX - 動畫
- JavaFX - 旋轉過渡
- JavaFX - 縮放過渡
- JavaFX - 平移過渡
- JavaFX - 淡入淡出過渡
- JavaFX - 填充過渡
- JavaFX - 描邊過渡
- JavaFX - 順序過渡
- JavaFX - 並行過渡
- JavaFX - 暫停過渡
- JavaFX - 路徑過渡
- JavaFX 影像
- JavaFX - 影像
- JavaFX 3D 形狀
- JavaFX - 3D 形狀
- JavaFX - 建立長方體
- JavaFX - 建立圓柱體
- JavaFX - 建立球體
- 3D 物件的屬性
- JavaFX - 剔除面屬性
- JavaFX - 繪製模式屬性
- JavaFX - 材質屬性
- JavaFX 事件處理
- JavaFX - 事件處理
- JavaFX - 使用便捷方法
- JavaFX - 事件過濾器
- JavaFX - 事件處理程式
- JavaFX UI 控制元件
- JavaFX - UI 控制元件
- JavaFX - 列表檢視
- JavaFX - 手風琴
- JavaFX - 按鈕欄
- JavaFX - 選擇框
- JavaFX - HTML 編輯器
- JavaFX - 選單欄
- JavaFX - 分頁
- JavaFX - 進度指示器
- JavaFX - 滾動窗格
- JavaFX - 分隔符
- JavaFX - 滑塊
- JavaFX - 微調器
- JavaFX - 分割窗格
- JavaFX - 表格檢視
- JavaFX - 選項卡窗格
- JavaFX - 工具欄
- JavaFX - 樹檢視
- JavaFX - 標籤
- JavaFX - 複選框
- JavaFX - 單選按鈕
- JavaFX - 文字欄位
- JavaFX - 密碼欄位
- JavaFX - 檔案選擇器
- JavaFX - 超連結
- JavaFX - 工具提示
- JavaFX - 警報
- JavaFX - 日期選擇器
- JavaFX - 文字區域
- JavaFX 圖表
- JavaFX - 圖表
- JavaFX - 建立餅圖
- JavaFX - 建立折線圖
- JavaFX - 建立面積圖
- JavaFX - 建立條形圖
- JavaFX - 建立氣泡圖
- JavaFX - 建立散點圖
- JavaFX - 建立堆疊面積圖
- JavaFX - 建立堆疊條形圖
- JavaFX 佈局窗格
- JavaFX - 佈局窗格
- JavaFX - HBox 佈局
- JavaFX - VBox 佈局
- JavaFX - BorderPane 佈局
- JavaFX - StackPane 佈局
- JavaFX - TextFlow 佈局
- JavaFX - AnchorPane 佈局
- JavaFX - TilePane 佈局
- JavaFX - GridPane 佈局
- JavaFX - FlowPane 佈局
- JavaFX CSS
- JavaFX - CSS
- JavaFX 中的媒體
- JavaFX - 處理媒體
- JavaFX - 播放影片
- JavaFX 有用資源
- JavaFX - 快速指南
- JavaFX - 有用資源
- JavaFX - 討論
JavaFX - 混合效果
一般來說,混合是指兩種或多種不同事物或物質的混合。如果我們應用混合效果,它將獲取兩個不同輸入的畫素。這將在相同的位置執行,並根據混合模式生成組合輸出。
例如,如果我們繪製兩個物件,則頂部物件覆蓋底部物件。在應用混合效果時,重疊區域中兩個物件的畫素將被組合並根據輸入模式顯示。
名為Blend的類(位於javafx.scene.effect包中)表示混合效果,此類包含四個屬性,它們是:
bottomInput - 此屬性的型別為 Effect,它表示混合效果的底部輸入。
topInput - 此屬性的型別為 Effect,它表示混合效果的頂部輸入。
opacity - 此屬性為 double 型別,它表示與頂部輸入調製的透明度值。
mode - 此屬性的型別為 BlendMode,它表示用於將兩個輸入混合在一起的模式。
示例
以下示例演示了混合效果。在這裡,我們在棕色填充的圓圈之上繪製了一個藍色紫色 ColorInput。
我們應用了混合效果並選擇了“multiply”模式。在重疊區域,兩個物件的顏色相乘並顯示。
將此程式碼儲存在名為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 --module-path %PATH_TO_FX% --add-modules javafx.controls BlendEffectExample.java java --module-path %PATH_TO_FX% --add-modules javafx.controls BlendEffectExample
輸出
執行上述程式後,將生成如下所示的 JavaFX 視窗。
混合模式
| 序號 | 模式和描述 | 輸出 |
|---|---|---|
| 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 在此模式下,頂部輸入繪製在底部輸入之上。 |
![]() |
















