
- 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 在此模式下,頂部輸入繪製在底部輸入之上。 |
![]() |