Javafx-blend-effect

提供:Dev Guides
移動先:案内検索

JavaFXエフェクト-ブレンド

一般に、ブレンドとは、2つ以上の異なるものまたは物質の混合物を意味します。 ブレンド効果を適用すると、2つの異なる入力のピクセルが使用されます。 これは同じ場所で行われ、*ブレンドモード*に基づいて結合出力を生成します。

たとえば、2つのオブジェクトを描画する場合、上のオブジェクトが下のオブジェクトを覆います。 ブレンド効果を適用すると、オーバーラップ領域の2つのオブジェクトのピクセルが結合され、入力モードに基づいて表示されます。

ブレンド効果適用

パッケージ javafx.scene.effectBlend という名前のクラスはブレンド効果を表し、このクラスには4つのプロパティが含まれています。

  • bottomInput -このプロパティはEffect型であり、ブレンドエフェクトへのボトム入力を表します。
  • topInput -このプロパティはEffect型であり、ブレンド効果へのトップ入力を表します。
  • opacity -このプロパティはdouble型で、上部の入力で変調された不透明度の値を表します。
  • mode -このプロパティはBlendModeタイプであり、2つの入力をブレンドするために使用されるモードを表します。

以下は、ブレンド効果を示す例です。 ここでは、茶色で塗りつぶされた円を描き、その上にBLUEVIOLET ColorInputがあります。

乗算モードを選択してブレンド効果を適用しました。重複領域では、2つのオブジェクトの色が乗算されて表示されました。

このコードを 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 Mode & Description Output
1

ADD

このモードでは、上部と下部の入力の色の値が追加されて表示されます。

Add Mode
2

MULTIPLY

このモードでは、上部と下部の入力の色の値が乗算されて表示されます。

MULTIPLY Mode
3

DIFFERENCE

このモードでは、上部と下部の入力のカラー値のうち、明るい方から暗い方が差し引かれて表示されます。

DIFFERENCE Mode
4

RED

このモードでは、下部の入力の赤のコンポーネントが上部の入力の赤のコンポーネントに置き換えられました。

RED Mode
5

BLUE

このモードでは、下部の入力の青のコンポーネントが上部の入力の青のコンポーネントに置き換えられました。

BLUE Mode
6

GREEN

このモードでは、下の入力の緑のコンポーネントが上の入力の緑のコンポーネントに置き換えられました。

GREEN MODE
7

EXCLUSION

このモードでは、2つの入力の色成分が乗算され、2倍になりました。 次に、下の入力の色成分の合計から減算されます。 結果が表示されます。

EXCLUSION Mode
8

COLOR_BURN

このモードでは、下部入力色成分の逆数が上部入力色成分で除算されました。 したがって、取得した値は反転して表示されます。

COLOR BURN
9

COLOR_DODGE

このモードでは、下部の入力色成分が上部の入力色成分の逆数で除算されたため、得られた値が反転して表示されます。

COLOR DODGE
10

LIGHTEN

このモードでは、両方の入力のうち明るい色のコンポーネントが表示されます。

Lighten
11

DARKEN

このモードでは、上部と下部の入力のうち、暗い色のコンポーネントが表示されます。

Darken
12

SCREEN

このモードでは、上部と下部の入力の色成分が反転、乗算され、取得された値が反転して表示されます。

Screen
13

OVERLAY

このモードでは、下部の入力色に基づいて、2つの入力値の色成分が乗算またはスクリーニングされ、結果が表示されます。

Overlay
14

HARD_LIGHT

このモードでは、上部の入力色に基づいて、2つの入力値の色成分が乗算またはスクリーニングされ、結果が表示されます。

Hard Light
15

SOFT_LIGH

このモードでは、上部の入力色に基づいて、2つの入力値の色成分が柔らかくまたは明るくなり、結果が表示されます。

Soft Light
16

SRC_ATOP

このモードでは、オーバーラップ領域が下部入力の色成分で塗りつぶされます。 重複しない領域は、上部入力の色成分で塗りつぶされます。

SRC ATOP
17

SRC_OVER

このモードでは、上部の入力が下部の入力の上に描画されます。

SRC OVER