JavaTM 2
Platform
Std. Ed. v1.4.0

java.awt
クラス AlphaComposite

java.lang.Object
  |
  +--java.awt.AlphaComposite
すべての実装インタフェース:
Composite

public final class AlphaComposite
extends Object
implements Composite

この AlphaComposite クラスは、グラフィックスとイメージの混合の効果、そして透明化の効果を実現するために、転送元のピクセルと転送先のピクセルを結合するための基本的なアルファ合成規則を実装します。このクラスで実装される規則は、T. Porter および T. Duff 共著の『Compositing Digital Images』(SIGGRAPH 84, 253〜259) に記述されている Porter-Duff 規則のセットです。

入力がアルファチャネルを持たない場合は、すべてのピクセルがアルファ値 1.0 (完全に不透明) と見なされます。また、転送元のピクセルのアルファ値に定数アルファ値を掛けるように指定することもできます。

規則の説明では、次の省略名が使用されます。

合成操作によって生成される色とアルファ成分は次のように計算されます。

	Cd = Cs*Fs + Cd*Fd
	Ad = As*Fs + Ad*Fd
Fs と Fd はそれぞれの規則で指定されます。上の等式は、転送元と転送先のピクセルがどちらも、あらかじめアルファ成分が乗算された色成分を持つことを前提としています。合成規則の定義を表す次の等式も、同様にあらかじめ乗算されたアルファを前提としています。

AlphaComposite クラスによって生成された CompositeContext オブジェクトの合成メソッドに渡される Raster のデータがあらかじめ乗算済みであれば、パフォーマンスが向上します。転送元または転送先のどちらかの Raster が乗算されていない場合、合成操作の前後に適切な変換が実行されます。

合成操作の結果のアルファは、転送先にアルファチャネルがある場合は転送先に格納されます。そうでない場合、結果の色は転送先に格納される前に結果のアルファで除算され、アルファは破棄されます。アルファ値が 0.0 であれば、カラー値は 0.0 に設定されます。

関連項目:
Composite, CompositeContext

フィールドの概要
static AlphaComposite Clear
          1.0f のアルファを持つ、不透明の CLEAR 規則を実装する AlphaComposite オブジェクトです。
static int CLEAR
          Porter-Duff Clear 規則です。
static AlphaComposite Dst
          1.0f のアルファを持つ、不透明の DST 規則を実装する AlphaComposite オブジェクトです。
static int DST
          Porter-Duff Destination 規則です。
static int DST_ATOP
          Porter-Duff Destination Atop Source 規則です。
static int DST_IN
          Porter-Duff Destination In Source 規則です。
static int DST_OUT
          Porter-Duff Destination Held Out By Source 規則です。
static int DST_OVER
          Porter-Duff Destination Over Source 規則です。
static AlphaComposite DstAtop
          1.0f のアルファを持つ、不透明の DST_ATOP 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite DstIn
          1.0f のアルファを持つ、不透明の DST_IN 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite DstOut
          1.0f のアルファを持つ、不透明の DST_OUT 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite DstOver
          1.0f のアルファを持つ、不透明の DST_OVER 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite Src
          1.0f のアルファを持つ、不透明の SRC 規則を実装する AlphaComposite オブジェクトです。
static int SRC
          Porter-Duff Source 規則です。
static int SRC_ATOP
          Porter-Duff Source Atop Destination 規則です。
static int SRC_IN
          Porter-Duff Source In Destination 規則です。
static int SRC_OUT
          Porter-Duff Source Held Out By Destination 規則です。
static int SRC_OVER
          Porter-Duff Source Over Destination 規則です。
static AlphaComposite SrcAtop
          1.0f のアルファを持つ、不透明の SRC_ATOP 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite SrcIn
          1.0f のアルファを持つ、不透明の SRC_IN 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite SrcOut
          1.0f のアルファを持つ、不透明の SRC_OUT 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite SrcOver
          1.0f のアルファを持つ、不透明の SRC_OVER 規則を実装する AlphaComposite オブジェクトです。
static AlphaComposite Xor
          1.0f のアルファを持つ、不透明の XOR 規則を実装する AlphaComposite オブジェクトです。
static int XOR
          Porter-Duff Source Xor Destination 規則です。
 
メソッドの概要
 CompositeContext createContext(ColorModel srcColorModel, ColorModel dstColorModel, RenderingHints hints)
          合成操作のコンテキストを作成します。
 boolean equals(Object obj)
          指定された Object がこの AlphaComposite オブジェクトと等しいかどうかを判定します。
 float getAlpha()
          この AlphaComposiste のアルファ値を返します。
static AlphaComposite getInstance(int rule)
          指定された規則を使って AlphaComposite オブジェクトを生成します。
static AlphaComposite getInstance(int rule, float alpha)
          指定された規則と転送元のアルファに掛ける定数アルファを使って AlphaComposite オブジェクトを生成します。
 int getRule()
          この AlphaComposite の合成規則を返します。
 int hashCode()
          この合成のハッシュコードを返します。
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CLEAR

public static final int CLEAR
Porter-Duff Clear 規則です。転送先の色およびアルファの両方がクリアされます。転送元と転送先のどちらも入力として使用されません。

Fs = 0、Fd = 0 の場合、次のようになります。

	Cd = 0
	Ad = 0

関連項目:
定数フィールド値

SRC

public static final int SRC
Porter-Duff Source 規則です。転送元が転送先にコピーされます。転送先は入力として使用されません。

Fs = 1、Fd = 0 の場合、次のようになります。

	Cd = Cs
	Ad = As

関連項目:
定数フィールド値

DST

public static final int DST
Porter-Duff Destination 規則です。転送先は変更されません。

Fs = 0、Fd = 1 の場合、次のようになります。

	Cd = Cd
	Ad = Ad

導入されたバージョン:
1.4
関連項目:
定数フィールド値

SRC_OVER

public static final int SRC_OVER
Porter-Duff Source Over Destination 規則です。転送元は転送先の上に重ね合わせられます。

Fs = 1、Fd = (1-As) の場合、次のようになります。

	Cd = Cs + Cd*(1-As)
	Ad = As + Ad*(1-As)

関連項目:
定数フィールド値

DST_OVER

public static final int DST_OVER
Porter-Duff Destination Over Source 規則です。転送先は転送元の上に重ね合わせられ、この結果生成された色で転送先が置き換えられます。

Fs = (1-Ad)、Fd = 1 の場合、次のようになります。

	Cd = Cs*(1-Ad) + Cd
	Ad = As*(1-Ad) + Ad

関連項目:
定数フィールド値

SRC_IN

public static final int SRC_IN
Porter-Duff Source In Destination 規則です。転送元の転送先内部にある部分で転送先が置き換えられます。

Fs = Ad、Fd = 0 の場合、次のようになります。

	Cd = Cs*Ad
	Ad = As*Ad

関連項目:
定数フィールド値

DST_IN

public static final int DST_IN
Porter-Duff Destination In Source 規則です。転送先の転送元の内部にある部分で転送先が置き換えられます。

Fs = 0、Fd = As の場合、次のようになります。

	Cd = Cd*As
	Ad = Ad*As

関連項目:
定数フィールド値

SRC_OUT

public static final int SRC_OUT
Porter-Duff Source Held Out By Destination 規則です。転送元の転送先の外にある部分で転送先が置き換えられます。

Fs = (1-Ad)、Fd = 0 の場合、次のようになります。

	Cd = Cs*(1-Ad)
	Ad = As*(1-Ad)

関連項目:
定数フィールド値

DST_OUT

public static final int DST_OUT
Porter-Duff Destination Held Out By Source 規則です。転送先の転送元の外にある部分で転送先が置き換えられます。

Fs = 0、Fd = (1-As) の場合、次のようになります。

	Cd = Cd*(1-As)
	Ad = Ad*(1-As)

関連項目:
定数フィールド値

SRC_ATOP

public static final int SRC_ATOP
Porter-Duff Source Atop Destination 規則です。転送元の転送先内部にある部分が、転送先に重ね合せられます。

Fs = Ad、Fd = (1-As) の場合、以下のようになります。

	Cd = Cs*Ad + Cd*(1-As)
	Ad = As*Ad + Ad*(1-As) = Ad

導入されたバージョン:
1.4
関連項目:
定数フィールド値

DST_ATOP

public static final int DST_ATOP
Porter-Duff Destination Atop Source 規則です。転送先の転送元内部にある部分が、転送元に重ね合わせられ、この結果生成された色で転送先が置き換えられます。

Fs = (1-Ad)、Fd = As の場合、以下のようになります。

	Cd = Cs*(1-Ad) + Cd*As
	Ad = As*(1-Ad) + Ad*As = As

導入されたバージョン:
1.4
関連項目:
定数フィールド値

XOR

public static final int XOR
Porter-Duff Source Xor Destination 規則です。転送元の転送先の外にある部分が、転送先の転送元の外にある部分と混合されます。

Fs = (1-Ad)、Fd = (1-As) の場合、以下のようになります。

	Cd = Cs*(1-Ad) + Cd*(1-As)
	Ad = As*(1-Ad) + Ad*(1-As)

導入されたバージョン:
1.4
関連項目:
定数フィールド値

Clear

public static final AlphaComposite Clear
1.0f のアルファを持つ、不透明の CLEAR 規則を実装する AlphaComposite オブジェクトです。

関連項目:
CLEAR

Src

public static final AlphaComposite Src
1.0f のアルファを持つ、不透明の SRC 規則を実装する AlphaComposite オブジェクトです。

関連項目:
SRC

Dst

public static final AlphaComposite Dst
1.0f のアルファを持つ、不透明の DST 規則を実装する AlphaComposite オブジェクトです。

導入されたバージョン:
1.4
関連項目:
DST

SrcOver

public static final AlphaComposite SrcOver
1.0f のアルファを持つ、不透明の SRC_OVER 規則を実装する AlphaComposite オブジェクトです。

関連項目:
SRC_OVER

DstOver

public static final AlphaComposite DstOver
1.0f のアルファを持つ、不透明の DST_OVER 規則を実装する AlphaComposite オブジェクトです。

関連項目:
DST_OVER

SrcIn

public static final AlphaComposite SrcIn
1.0f のアルファを持つ、不透明の SRC_IN 規則を実装する AlphaComposite オブジェクトです。

関連項目:
SRC_IN

DstIn

public static final AlphaComposite DstIn
1.0f のアルファを持つ、不透明の DST_IN 規則を実装する AlphaComposite オブジェクトです。

関連項目:
DST_IN

SrcOut

public static final AlphaComposite SrcOut
1.0f のアルファを持つ、不透明の SRC_OUT 規則を実装する AlphaComposite オブジェクトです。

関連項目:
SRC_OUT

DstOut

public static final AlphaComposite DstOut
1.0f のアルファを持つ、不透明の DST_OUT 規則を実装する AlphaComposite オブジェクトです。

関連項目:
DST_OUT

SrcAtop

public static final AlphaComposite SrcAtop
1.0f のアルファを持つ、不透明の SRC_ATOP 規則を実装する AlphaComposite オブジェクトです。

導入されたバージョン:
1.4
関連項目:
SRC_ATOP

DstAtop

public static final AlphaComposite DstAtop
1.0f のアルファを持つ、不透明の DST_ATOP 規則を実装する AlphaComposite オブジェクトです。

導入されたバージョン:
1.4
関連項目:
DST_ATOP

Xor

public static final AlphaComposite Xor
1.0f のアルファを持つ、不透明の XOR 規則を実装する AlphaComposite オブジェクトです。

導入されたバージョン:
1.4
関連項目:
XOR
メソッドの詳細

getInstance

public static AlphaComposite getInstance(int rule)
指定された規則を使って AlphaComposite オブジェクトを生成します。

パラメータ:
rule - 合成規則
例外:
IllegalArgumentException - rule が、CLEARSRCDSTSRC_OVERDST_OVERSRC_INDST_INSRC_OUTDST_OUTSRC_ATOPDST_ATOP、または XOR のどれでもない場合

getInstance

public static AlphaComposite getInstance(int rule,
                                         float alpha)
指定された規則と転送元のアルファに掛ける定数アルファを使って AlphaComposite オブジェクトを生成します。転送先と合成される前に、転送元は指定されたアルファで乗算されます。

パラメータ:
rule - 合成規則
alpha - 転送元のアルファに掛ける定数アルファ。alpha は、範囲 [0.0, 1.0] (両端を含む) の浮動小数点数値でなければならない

createContext

public CompositeContext createContext(ColorModel srcColorModel,
                                      ColorModel dstColorModel,
                                      RenderingHints hints)
合成操作のコンテキストを作成します。コンテキストには、合成操作を実行する場合の状態が設定されます。

定義:
インタフェース Composite 内の createContext
パラメータ:
srcColorModel - 転送元の ColorModel
dstColorModel - 転送先の ColorModel
hints - コンテキストオブジェクトが描画の選択肢を選択するときに使用するヒント
戻り値:
合成操作を実行するために使用される CompositeContext オブジェクト

getAlpha

public float getAlpha()
この AlphaComposiste のアルファ値を返します。この AlphaComposiste がアルファ値を持たない場合は、1.0 が返されます。

戻り値:
この AlphaComposite のアルファ値

getRule

public int getRule()
この AlphaComposite の合成規則を返します。

戻り値:
この AlphaComposite の合成規則

hashCode

public int hashCode()
この合成のハッシュコードを返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この合成のハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
指定された Object がこの AlphaComposite オブジェクトと等しいかどうかを判定します。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 等しいかどうかが判定される Object
戻り値:
obj がこの AlphaComposite と等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.