Javafx-blend-effect
JavaFXエフェクト-ブレンド
一般に、ブレンドとは、2つ以上の異なるものまたは物質の混合物を意味します。 ブレンド効果を適用すると、2つの異なる入力のピクセルが使用されます。 これは同じ場所で行われ、*ブレンドモード*に基づいて結合出力を生成します。
たとえば、2つのオブジェクトを描画する場合、上のオブジェクトが下のオブジェクトを覆います。 ブレンド効果を適用すると、オーバーラップ領域の2つのオブジェクトのピクセルが結合され、入力モードに基づいて表示されます。
パッケージ javafx.scene.effect の Blend という名前のクラスはブレンド効果を表し、このクラスには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 |