JavaTM 2
Platform
Std. Ed. v1.4.0

java.awt.image
クラス ComponentColorModel

java.lang.Object
  |
  +--java.awt.image.ColorModel
        |
        +--java.awt.image.ComponentColorModel
すべての実装インタフェース:
Transparency

public class ComponentColorModel
extends ColorModel

これは ColorModel クラスの 1 つで、ピクセル値を扱います。このピクセル値は、色情報およびアルファ情報を個別のサンプルとして表現し、各サンプルを個別のデータ要素に格納します。このクラスは、任意の ColorSpace とともに使用できます。ピクセル値に含むカラーサンプルの数は、ColorSpace にある色成分の数と等しくなければなりません。アルファサンプルは、単一でもかまいません。

transferType 型のプリミティブ配列ピクセル表現を使うメソッドの場合、配列の長さはカラーサンプルおよびアルファサンプルの数と等しくなります。配列にはカラーサンプルが最初に格納され、アルファサンプルがあれば、そのあとに格納されます。カラーサンプルの順序は、ColorSpace で指定します。通常、この順序はカラースペースタイプの名前を反映します。たとえば、TYPE_RGB のインデックス 0 は赤、インデックス 1 は緑、そしてインデックス 2 は青になります。

表示、あるいはイメージ処理のためにピクセル値を色成分またはアルファ成分に変換する処理は、サンプルと成分の 1 対 1 対応になります。ComponentColorModel のインスタンスの作成に使用する転送型に応じて、インスタンスが符号付きか符号なしか、および整数型、float、double のどれか (詳細は以降を参照) によって、ピクセルサンプル値は表現されます。サンプル値を色成分またはアルファ成分に変換する処理は、特定の規則に従う必要があります。float および double のサンプルの場合は恒等変換で、標準化成分値が対応するサンプル値と等しくなります。整数サンプルの場合は、単純なスケールおよびオフセットのみの変換です。スケール定数とオフセット定数は成分ごとに異なることがあります。スケール定数とオフセット定数を適用した結果は、特定の範囲に確実に収まる色成分およびアルファ成分の値のセットです。通常、色成分の範囲は ColorSpace クラスの getMinValue メソッドと getMaxValue メソッドによって定義されます。アルファ成分の範囲は 0.0 〜 1.0 です。

転送型 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT、および DataBuffer.TYPE_INT で作成された ComponentColorModel のインスタンスは、符号なし整数値として扱われるピクセルサンプル値を持ちます。ピクセル値の色サンプルとアルファサンプルのビット数は、ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) コンストラクタに渡された、対応するカラーサンプルおよびアルファサンプルのビット数と異なる場合があります。この場合、このクラスは、サンプル値の最下位 n ビットが成分の値を保持していると見なします。このとき n は、コンストラクタに渡された成分の有効ビットの数です。また、より上位にあるサンプル値の任意のビットについては、すべて 0 であると見なされます。したがって、サンプル値の範囲は 0 〜 2n - 1 になります。このクラスは、これらのサンプル値を標準化された色成分値にマップするので、0 は ColorSpace クラスの getMinValue メソッドから取得した値にマップされ、2n - 1 は getMaxValue メソッドから取得した値にマップされます。異なるカラーサンプルのマッピングの ComponentColorModel を作成するには、このクラスのサブクラス化し、getNormalizedComponents(Object, float[], int) メソッドをオーバーライドする必要があります。アルファサンプルの場合、常に 0 が 0.0 に、2n - 1 が 1.0 にマップされます。

符号なしサンプル値を持つインスタンスでは、 次の 2 つの条件が満たされる場合にのみ、標準化されていない色成分およびアルファ成分表現がサポートされます。1 つは、サンプル値 0 が標準化成分値 0.0 にマップされ、サンプル値 2n - 1 が 1.0 にマップされることです。もう 1 つは、ColorSpace のすべての色成分の最小/最大範囲が 0.0 〜 1.0 であることです。この場合、成分表現は対応するサンプルの最下位 n ビットになります。したがって、各成分は 0 と 2n - 1 の間の符号なし整数値です。このとき n は、特定の成分の有効ビット数です。これらの条件が満たされない場合は、非標準化成分の引数を取る任意のメソッドが IllegalArgumentException をスローします。

転送型 DataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT、および DataBuffer.TYPE_DOUBLE で作成された ComponentColorModel のインスタンスは、符号付き short、float、または double 値として扱われるピクセルサンプル値を保持します。これらのインスタンスは標準化されていない色成分およびアルファ成分表現をサポートしないため、インスタンスを呼び出すと、引数にこれらの表現を取るメソッドは IllegalArgumentException をスローします。このクラスのインスタンスの標準化成分値は、次の転送型に対応した範囲を持ちます。float サンプルは float データ型の全範囲、double サンプルは float データ型の全範囲 (double を float にキャストした結果)、short サンプルはほぼ -maxVal 〜 +maxVal です。maxVal は ColorSpace の成分あたりの最大値です (-32767 が -maxVal に、0 が 0.0 に、32767 が +maxVal にマップされます)。サブクラスは、getNormalizedComponents(Object, float[], int) メソッドをオーバーライドすることにより、short サンプル値の標準化成分値へのスケーリングをオーバーライドすることがあります。float サンプルと double サンプルについては、標準化成分値が対応するサンプル値と等しくなり、サブクラスはこれらの転送型のどの非恒等変換スケーリングも追加しません。

転送型 DataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT、および DataBuffer.TYPE_DOUBLE で作成された ComponentColorModel のインスタンスは、すべてのサンプル値のすべてのビットを使用します。したがって、すべての色成分およびアルファ成分は、 DataBuffer.TYPE_SHORT の場合は 16 ビット、DataBuffer.TYPE_FLOAT の場合は 32 ビット、DataBuffer.TYPE_DOUBLE の場合は 64 ビットを保持します。ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int) 形式のコンストラクタがこれらの転送型で使用される場合、ビット配列引数は無視されます。

カラーサンプル値とアルファサンプル値が描画する成分値として適切に解釈されないこともあります。これは、ComponentColorModel が、符号なしサンプル値の標準化された色成分値へのマッピングをオーバーライドするためサブクラス化されているか、特定の範囲外の符号付きサンプル値が使用されている場合に起こります。たとえば、アルファ成分を 0 〜 32767 の範囲にない符号付き short 値、標準化範囲 0.0 〜 1.0 として指定すると、予期しない結果になります。色成分が ColorSpace の標準化範囲 (ColorSpace クラスの getMinValue メソッドと getMaxValue メソッドを使用して取得) 内にあり、アルファ成分が 0.0 〜 1.0 であるように、描画の前にアプリケーション側でピクセルデータを適切にスケーリングする必要があります。色成分値またはアルファ成分値が範囲外にある場合には、描画結果を確定できません。

ComponentColorModel の成分数が 1 でコンポーネント値が符号なし (つまり、転送型 DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT を使用する単一の色成分のみで、アルファ成分がない) 以外の場合、単一の int ピクセル表現を使うメソッドは IllegalArgumentException をスローします。

ComponentColorModel は、ComponentSampleModelBandedSampleModel、または PixelInterleavedSampleModel と組み合わせて、BufferedImage の作成に使用できます。

関連項目:
ColorModel, ColorSpace, ComponentSampleModel, BandedSampleModel, PixelInterleavedSampleModel, BufferedImage

フィールドの概要
 
クラス java.awt.image.ColorModel から継承したフィールド
pixel_bits, transferType
 
インタフェース java.awt.Transparency から継承したフィールド
BITMASK, OPAQUE, TRANSLUCENT
 
コンストラクタの概要
ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
          指定されたパラメータから、ComponentColorModel を構築します。
ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
          指定されたパラメータから、ComponentColorModel を構築します。
 
メソッドの概要
 ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
          ラスタデータが isAlphaPremultiplied 変数で指定された状態と一致するようにします。
 SampleModel createCompatibleSampleModel(int w, int h)
          指定された幅および高さで、この ColorModel と互換性のあるデータレイアウトを持つ SampleModel を作成します。
 WritableRaster createCompatibleWritableRaster(int w, int h)
          指定された幅および高さで、この ColorModel と互換性のあるデータレイアウト (SampleModel) を持つ WritableRaster を作成します。
 boolean equals(Object obj)
          このカラーモデルと別のカラーモデルとが等しいかどうかを比較します。
 int getAlpha(int pixel)
          指定されたピクセルのアルファ成分を、0 〜 255 の範囲でスケーリングして返します。
 int getAlpha(Object inData)
          指定されたピクセルのアルファ成分を 0 〜 255 の範囲でスケーリングして返します。
 WritableRaster getAlphaRaster(WritableRaster raster)
          イメージのアルファチャネルを表現する Raster を、入力された Raster から抽出して返します。
 int getBlue(int pixel)
          指定されたピクセルの青成分をデフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。
 int getBlue(Object inData)
          指定されたピクセルの青色成分を、デフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。
 int[] getComponents(int pixel, int[] components, int offset)
          この ColorModel のピクセルを指定して、標準化されていない色成分またはアルファ成分の配列を返します。
 int[] getComponents(Object pixel, int[] components, int offset)
          この ColorModel のピクセルを指定して、標準化されていない色成分またはアルファ成分の配列を返します。
 int getDataElement(float[] normComponents, int normOffset)
          標準化されていない色成分およびアルファ成分の配列を指定して、この ColorModelint として表されるピクセル値を返します。
 int getDataElement(int[] components, int offset)
          非正規化された色成分あるいはアルファ成分の配列を指定して、この ColorModel の int として表現されるピクセル値を返します。
 Object getDataElements(float[] normComponents, int normOffset, Object obj)
          標準化色成分およびアルファ成分の配列を指定して、この ColorModel のピクセルのデータ要素配列表現を返します。
 Object getDataElements(int[] components, int offset, Object obj)
          非正規化された色成分またはアルファ成分の配列を指定して、この ColorModel のピクセルのデータ要素配列表現を返します。
 Object getDataElements(int rgb, Object pixel)
          デフォルトの RGB カラーモデルの int ピクセル表現を指定して、この ColorModel のピクセルデータ要素配列表現を返します。
 int getGreen(int pixel)
          指定されたピクセルの緑成分をデフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。
 int getGreen(Object inData)
          指定されたピクセルの緑色成分を、デフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。
 float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
          標準化成分配列を指定して、非標準化形式ですべての色成分およびアルファ成分の配列を返します。
 float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
          この ColorModel の指定されたピクセルについて、標準化形式で色成分とアルファ成分の配列を返します。
 int getRed(int pixel)
          指定されたピクセルの赤成分をデフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。
 int getRed(Object inData)
          指定されたピクセルの赤色成分を、デフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。
 int getRGB(int pixel)
          デフォルトの RGB カラーモデル形式で、ピクセルの色成分またはアルファ成分を返します。
 int getRGB(Object inData)
          デフォルトの RGB カラーモデル形式で、ピクセルの色成分またはアルファ成分を返します。
 int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
          標準化成分配列を指定して、非標準化形式ですべての色成分およびアルファ成分の配列を返します。
 boolean isCompatibleRaster(Raster raster)
          raster がこの ColorModel と互換性がある場合に true を返し、そうでない場合は false を返します。
 boolean isCompatibleSampleModel(SampleModel sm)
          指定された SampleModel がこの ColorModel と互換性があるかどうかを判定します。
 
クラス java.awt.image.ColorModel から継承したメソッド
finalize, getColorSpace, getComponentSize, getComponentSize, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, hasAlpha, hashCode, isAlphaPremultiplied, toString
 
クラス java.lang.Object から継承したメソッド
clone, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

ComponentColorModel

public ComponentColorModel(ColorSpace colorSpace,
                           int[] bits,
                           boolean hasAlpha,
                           boolean isAlphaPremultiplied,
                           int transparency,
                           int transferType)
指定されたパラメータから、ComponentColorModel を構築します。色成分は、指定された ColorSpace 内になります。サポートされる転送型は、DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT、および DataBuffer.TYPE_DOUBLE です。null でない場合、bits 配列は、色成分およびアルファ成分ごとの有効ビット数を指定します。ピクセル値にアルファ情報がない場合、配列の長さは少なくとも ColorSpace にある成分数になり、アルファ情報がある場合は、成分数よりも 1 大きくなります。transferTypeDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT、または DataBuffer.TYPE_DOUBLE の場合、bits 配列引数は無視されます。hasAlpha は、アルファ情報の有無を示します。hasAlpha が true の場合、boolean 型の isAlphaPremultiplied は、ピクセル値にあるカラーサンプルおよびアルファサンプルを評価する方法を指定します。boolean が true の場合は、カラーサンプルはアルファサンプルと乗算されたと見なされます。transparency は、このカラーモデルで表現できるアルファ値を指定します。許容される transparency 値は、OPAQUEBITMASK、または TRANSLUCENT です。transferType は、ピクセル値を表現するために使うプリミティブ配列の型です。

パラメータ:
colorSpace - このカラーモデルに関連した ColorSpace
bits - 成分ごとの有効ビット数。null の場合、すべての成分サンプルのすべてのビットが有効になる。transferType が DataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT、または DataBuffer.TYPE_DOUBLE の場合は無視され、すべての成分サンプルのすべてのビットが有効になる
hasAlpha - true の場合、このカラーモデルはアルファをサポートする
isAlphaPremultiplied - true の場合、アルファはあらかじめ乗算されている
transparency - このカラーモデルで表すことができるアルファ値を指定する
transferType - ピクセル値を表現するために使われるプリミティブ配列の型を指定する
例外:
IllegalArgumentException - bits 配列引数が null でない場合、その長さは色成分およびアルファ成分より小さく、転送型は DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT
IllegalArgumentException - transferType が、DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE のどれでもない場合
関連項目:
ColorSpace, Transparency

ComponentColorModel

public ComponentColorModel(ColorSpace colorSpace,
                           boolean hasAlpha,
                           boolean isAlphaPremultiplied,
                           int transparency,
                           int transferType)
指定されたパラメータから、ComponentColorModel を構築します。色成分は、指定された ColorSpace 内になります。サポートされる転送型は、DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOAT、および DataBuffer.TYPE_DOUBLE です。色成分およびアルファ成分ごとの有効ビット数は、それぞれ 8、16、32、16、32、64 です。色成分数は ColorSpace にある成分数になります。hasAlpha が true の場合、アルファ成分があります。hasAlpha が true の場合、boolean 型の isAlphaPremultiplied は、ピクセル値にあるカラーサンプルおよびアルファサンプルを評価する方法を指定します。boolean が true の場合は、カラーサンプルはアルファサンプルと乗算されたと見なされます。transparency は、このカラーモデルで表現できるアルファ値を指定します。許容される transparency 値は、OPAQUEBITMASK、または TRANSLUCENT です。transferType は、ピクセル値の表現に使用するプリミティブ配列の型です。

パラメータ:
colorSpace - このカラーモデルに関連した ColorSpace
hasAlpha - true の場合、このカラーモデルはアルファをサポートする
isAlphaPremultiplied - true の場合、アルファはあらかじめ乗算されている
transparency - このカラーモデルで表現可能なアルファ値を指定する
transferType - ピクセル値の表現に使用するプリミティブ配列の型を指定する
例外:
IllegalArgumentException - transferType が、DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE のどれでもない場合
導入されたバージョン:
1.4
関連項目:
ColorSpace, Transparency
メソッドの詳細

getRed

public int getRed(int pixel)
指定されたピクセルの赤成分をデフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。必要な場合は、色変換が行われます。ピクセルの値は int として指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを除算します。アルファ値が 0 の場合、赤の値は 0 になります。

定義:
クラス ColorModel 内の getRed
パラメータ:
pixel - 赤色成分を取得するピクセル
戻り値:
指定されたピクセルの赤色成分 (int)
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ColorModel の成分値が符号付きの場合

getGreen

public int getGreen(int pixel)
指定されたピクセルの緑成分をデフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。必要な場合は、色変換が行われます。ピクセルの値は int として指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを除算します。アルファ値が 0 の場合、緑の値は 0 になります。

定義:
クラス ColorModel 内の getGreen
パラメータ:
pixel - 緑色成分を取得するピクセル
戻り値:
指定されたピクセルの緑色成分 (int)
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ColorModel の成分値が符号付きの場合

getBlue

public int getBlue(int pixel)
指定されたピクセルの青成分をデフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。必要な場合は、色変換が行われます。ピクセルの値は int として指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを除算します。アルファ値が 0 の場合、青の値は 0 になります。

定義:
クラス ColorModel 内の getBlue
パラメータ:
pixel - 青色成分を取得するピクセル
戻り値:
指定されたピクセルの青色成分 (int)
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ColorModel の成分値が符号付きの場合

getAlpha

public int getAlpha(int pixel)
指定されたピクセルのアルファ成分を、0 〜 255 の範囲でスケーリングして返します。ピクセル値は int として指定されます。

定義:
クラス ColorModel 内の getAlpha
パラメータ:
pixel - アルファ成分を取得するピクセル
戻り値:
指定されたピクセルのアルファ成分 (int)
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ColorModel の成分値が符号付きの場合

getRGB

public int getRGB(int pixel)
デフォルトの RGB カラーモデル形式で、ピクセルの色成分またはアルファ成分を返します。必要な場合は、色変換が行われます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを色成分で除算します。アルファ値が 0 の場合、カラー値も 0 になります。

オーバーライド:
クラス ColorModel 内の getRGB
パラメータ:
pixel - 色成分またはアルファ成分を取得するピクセル
戻り値:
指定されたピクセルの色成分またはアルファ成分 (int)
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ColorModel の成分値が符号付きの場合
関連項目:
ColorModel.getRGBdefault()

getRed

public int getRed(Object inData)
指定されたピクセルの赤色成分を、デフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。必要な場合は、色変換が行われます。pixel 値は、オブジェクト参照として渡された transferType 型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを除算します。アルファ値が 0 の場合、赤の値は 0 になります。ComponentColorModel はサブクラス化できるため、サブクラスがこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の getRed
パラメータ:
inData - 赤色成分を取得するピクセル。transferType 型のデータ要素の配列で指定する
戻り値:
指定されたピクセルの赤色成分 (int)
例外:
ClassCastException - inDatatransferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - inData がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合

getGreen

public int getGreen(Object inData)
指定されたピクセルの緑色成分を、デフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。必要な場合は、色変換が行われます。pixel 値は、オブジェクト参照として渡された transferType 型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを除算します。アルファ値が 0 の場合、緑の値は 0 になります。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の getGreen
パラメータ:
inData - 緑色成分を取得するピクセル。transferType 型のデータ要素の配列で指定する
戻り値:
指定されたピクセルの緑色成分 (int)
例外:
ClassCastException - inDatatransferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - inData がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合

getBlue

public int getBlue(Object inData)
指定されたピクセルの青色成分を、デフォルトの RGB ColorSpace (sRGB) で 0 〜 255 の範囲でスケーリングして返します。必要な場合は、色変換が行われます。pixel 値は、オブジェクト参照として渡された transferType 型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にアルファを除算します。アルファ値が 0 の場合、青の値は 0 になります。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の getBlue
パラメータ:
inData - 青色成分を取得するピクセル。transferType 型のデータ要素の配列で指定する
戻り値:
指定されたピクセルの青色成分 (int)
例外:
ClassCastException - inDatatransferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - inData がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合

getAlpha

public int getAlpha(Object inData)
指定されたピクセルのアルファ成分を 0 〜 255 の範囲でスケーリングして返します。ピクセルの値は、オブジェクト参照として渡された transferType 型のデータ要素からなる配列によって指定されます。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の getAlpha
パラメータ:
inData - アルファ成分を取得するピクセル。transferType 型のデータ要素の配列で指定する
戻り値:
指定されたピクセルのアルファ成分 (int)
例外:
ClassCastException - inDatatransferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - inData がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合

getRGB

public int getRGB(Object inData)
デフォルトの RGB カラーモデル形式で、ピクセルの色成分またはアルファ成分を返します。必要な場合は、色変換が行われます。ピクセルの値は、オブジェクト参照として渡された transferType 型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値です。アルファがあらかじめ乗算されていた場合、このメソッドは色成分でアルファを除算します。アルファ値が 0 の場合、カラー値は 0 になります。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の getRGB
パラメータ:
inData - 色成分またはアルファ成分を取得するピクセル。transferType 型のデータ要素の配列で指定する
戻り値:
指定されたピクセルの色成分またはアルファ成分 (int)
例外:
ClassCastException - inDatatransferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - inData がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合
関連項目:
ColorModel.getRGBdefault()

getDataElements

public Object getDataElements(int rgb,
                              Object pixel)
デフォルトの RGB カラーモデルの int ピクセル表現を指定して、この ColorModel のピクセルデータ要素配列表現を返します。その後この配列は、WritableRaster オブジェクトの setDataElements メソッドに渡すことができます。pixel パラメータが null である場合は、新しい配列が割り当てられます。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の getDataElements
パラメータ:
rgb - RGB カラーモデルの整数型ピクセル表現
pixel - 指定されたピクセル
戻り値:
この ColorModel のピクセルのデータ要素配列表現
例外:
ClassCastException - pixel が null でなく、transferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - pixel がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合
関連項目:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getComponents

public int[] getComponents(int pixel,
                           int[] components,
                           int offset)
この ColorModel のピクセルを指定して、標準化されていない色成分またはアルファ成分の配列を返します。この ColorModel の成分値が非標準化形式で表現できない場合は、IllegalArgumentException がスローされます。色成分やアルファ成分は、components 配列の offset 位置から格納されます。これは、配列がこのメソッドで割り当てられている場合も同様です。

オーバーライド:
クラス ColorModel 内の getComponents
パラメータ:
pixel - 整数で指定されるピクセル値
components - 標準化されていない色成分またはアルファ成分を格納する整数型の配列。components 配列が null の場合は、新しい配列が割り当てられる
offset - components 配列内のオフセット
戻り値:
components 配列
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ColorModel が非標準化形式をサポートしない場合
ArrayIndexOutOfBoundsException - components 配列が null でない場合に、offset からのすべての色成分およびアルファ成分を保持するのに十分な大きさでないとき

getComponents

public int[] getComponents(Object pixel,
                           int[] components,
                           int offset)
この ColorModel のピクセルを指定して、標準化されていない色成分またはアルファ成分の配列を返します。ピクセルの値は、オブジェクト参照として渡された transferType 型のデータ要素による配列で指定されます。この ColorModel の成分値が非標準化形式で表現できない場合は、IllegalArgumentException がスローされます。 色成分やアルファ成分は、components 配列の offset の位置から格納されます。これは、配列がこのメソッドで割り当てられている場合も同様です。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、このメソッドは例外をスローすることがあります。

オーバーライド:
クラス ColorModel 内の getComponents
パラメータ:
pixel - transferType 型のデータ要素の配列で指定されるピクセル値
components - 標準化されていない色成分またはアルファ成分を格納する整数型の配列。components 配列が null の場合は、新しい配列が割り当てられる
offset - components 配列内のオフセット
戻り値:
components 配列
例外:
IllegalArgumentException - この ComponentColorModel が非標準化形式をサポートしない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT のいずれでもない場合
ClassCastException - pixeltransferType 型のプリミティブ配列でない場合
IllegalArgumentException - components 配列が null でない場合に、offset からのすべての色成分およびアルファ成分を保持するのに十分な大きさでないとき。あるいは、pixel がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合

getUnnormalizedComponents

public int[] getUnnormalizedComponents(float[] normComponents,
                                       int normOffset,
                                       int[] components,
                                       int offset)
標準化成分配列を指定して、非標準化形式ですべての色成分およびアルファ成分の配列を返します。非標準化成分は、0 と 2n - 1 の間の符号なし整数値です。n は、特定の成分のビット数です。標準化成分は、この ColorModelColorSpace によって指定された 1 成分あたりの最小と最大の間の float 値です。この ColorModel の色成分値が非標準化形式で表現できない場合は、IllegalArgumentException がスローされます。components 配列が null の場合は、新しい配列が割り当てられます。components 配列が返されます。色成分およびアルファ成分は、offset を起点に components 配列に格納されます。配列がこのメソッドで割り当てられている場合も同様です。components 配列が null でない場合に、(offset を起点に) すべての色成分およびアルファ成分を格納するのに十分な大きさでないときは、ArrayIndexOutOfBoundsException がスローされます。normComponents 配列が normOffset を起点にすべての色成分およびアルファ成分を格納するのに十分な大きさでない場合は、IllegalArgumentException がスローされます。

オーバーライド:
クラス ColorModel 内の getUnnormalizedComponents
パラメータ:
normComponents - 標準化成分を格納している配列
normOffset - 標準化成分の取り出しを開始する、normComponents 配列内のオフセット
components - normComponents から成分を受け取る配列
offset - normComponents から標準化成分の格納を開始する、components 内のインデックス
戻り値:
標準化されていない色成分およびアルファ成分が格納されている配列
例外:
IllegalArgumentException - この ComponentColorModel が非標準化形式をサポートしない場合
IllegalArgumentException - normComponents から normOffset を引いた長さが numComponents より小さい場合

getNormalizedComponents

public float[] getNormalizedComponents(int[] components,
                                       int offset,
                                       float[] normComponents,
                                       int normOffset)
標準化成分配列を指定して、非標準化形式ですべての色成分およびアルファ成分の配列を返します。非標準化成分は、0 と 2n - 1 の間の符号なし整数値です。n は、特定の成分のビット数です。標準化成分は、この ColorModelColorSpace によって指定された 1 成分あたりの最小と最大の間の float 値です。この ColorModel の色成分値が非標準化形式で表現できない場合は、IllegalArgumentException がスローされます。components 配列が null の場合は、新しい配列が割り当てられます。components 配列が返されます。色成分およびアルファ成分は、offset を起点に components 配列に格納されます。配列がこのメソッドで割り当てられている場合も同様です。components 配列が null でない場合に、(offset を起点に) すべての色成分およびアルファ成分を格納するのに十分な大きさでないときは、ArrayIndexOutOfBoundsException がスローされます。normComponents 配列が normOffset を起点にすべての色成分およびアルファ成分を格納するのに十分な大きさでない場合は、IllegalArgumentException がスローされます。

オーバーライド:
クラス ColorModel 内の getNormalizedComponents
パラメータ:
components - 標準化されていない成分を格納している配列
offset - 標準化されていない成分の取り出しを開始する、components 配列内のオフセット
normComponents - 標準化成分を受け取る配列
normOffset - 標準化成分の格納を開始する、normComponents 内のインデックス
戻り値:
標準化されている色成分およびアルファ成分が格納されている配列
例外:
IllegalArgumentException - この ComponentColorModel が非標準化形式をサポートしない場合

getDataElement

public int getDataElement(int[] components,
                          int offset)
非正規化された色成分あるいはアルファ成分の配列を指定して、この ColorModel の int として表現されるピクセル値を返します。

オーバーライド:
クラス ColorModel 内の getDataElement
パラメータ:
components - 標準化されていない色成分またはアルファ成分の配列
offset - components 配列内のオフセット
戻り値:
int で表現されたピクセル値
例外:
IllegalArgumentException - この ColorModel に 2 つ以上の成分がある場合
IllegalArgumentException - この ComponentColorModel が非標準化形式をサポートしない場合

getDataElements

public Object getDataElements(int[] components,
                              int offset,
                              Object obj)
非正規化された色成分またはアルファ成分の配列を指定して、この ColorModel のピクセルのデータ要素配列表現を返します。この配列は、WritableRaster オブジェクトの setDataElements メソッドに渡すことができます。

オーバーライド:
クラス ColorModel 内の getDataElements
パラメータ:
components - 標準化されていない色成分またはアルファ成分の配列
offset - components 配列内の int オフセット
obj - ピクセルのデータ要素配列表現を格納するオブジェクト。obj 変数が null の場合は、新しい配列が割り当てられる。obj が null でない場合は、transferType 型のプリミティブ配列でなければならない。obj がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException がスローされる。ComponentColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承するが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされる
戻り値:
この ColorModel のピクセルのデータ要素配列表現
例外:
IllegalArgumentException - components 配列が、offset からのすべての色成分およびアルファ成分を保持するのに十分な大きさでない場合
ClassCastException - obj が null でなく、transferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - obj がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
IllegalArgumentException - この ComponentColorModel が非標準化形式をサポートしない場合
UnsupportedOperationException - この ComponentColorModel の転送型が、DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INT のいずれでもない場合
関連項目:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getDataElement

public int getDataElement(float[] normComponents,
                          int normOffset)
標準化されていない色成分およびアルファ成分の配列を指定して、この ColorModelint として表されるピクセル値を返します。この ColorModel のピクセル値が単一の int として表現できない場合、このメソッドは IllegalArgumentException をスローします。normComponents 配列が (normOffset を起点に) すべての色成分およびアルファ成分を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException がスローされます。

オーバーライド:
クラス ColorModel 内の getDataElement
パラメータ:
normComponents - 標準化されている色成分およびアルファ成分の配列
normOffset - 色成分およびアルファ成分の取り出しを開始する、normComponents 内のインデックス
戻り値:
指定された成分に対応する、この ColorModel 内の int ピクセル値
例外:
IllegalArgumentException - この ColorModel のピクセル値が単一の int として表現できない場合
ArrayIndexOutOfBoundsException - normComponents 配列の大きさが normOffset を起点にすべての色成分およびアルファ成分を保持するのに十分でない場合
導入されたバージョン:
1.4

getDataElements

public Object getDataElements(float[] normComponents,
                              int normOffset,
                              Object obj)
標準化色成分およびアルファ成分の配列を指定して、この ColorModel のピクセルのデータ要素配列表現を返します。この配列は、WritableRaster オブジェクトの setDataElements メソッドに渡すことができます。normComponents 配列が (normOffset を起点に) すべての色成分およびアルファ成分を格納するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException がスローされます。obj 変数が null の場合は、新しい配列が割り当てられます。objnull でない場合は、transferType 型のプリミティブ配列である必要があります。そうでない場合は、ClassCastException がスローされます。obj がこの ColorModel のピクセル値を格納するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException がスローされます。

オーバーライド:
クラス ColorModel 内の getDataElements
パラメータ:
normComponents - 標準化されている色成分およびアルファ成分の配列
normOffset - 色成分およびアルファ成分の取り出しを開始する、normComponents 内のインデックス
obj - 返されたピクセルを保持するプリミティブデータ配列
戻り値:
ピクセルのプリミティブデータ配列表現の Object
例外:
ClassCastException - objtransferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - obj がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合、あるいは normOffset を起点にした normComponents 配列がすべての色成分およびアルファ成分を保持するのに十分な大きさでない場合
導入されたバージョン:
1.4
関連項目:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getNormalizedComponents

public float[] getNormalizedComponents(Object pixel,
                                       float[] normComponents,
                                       int normOffset)
この ColorModel の指定されたピクセルについて、標準化形式で色成分とアルファ成分の配列を返します。ピクセル値は、オブジェクト参照として渡される transferType 型のデータ要素の配列によって指定されます。pixel が transferType 型のプリミティブ配列でない場合は、ClassCastException がスローされます。pixel がこの ColorModel のピクセル値を格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。標準化成分は、この ColorModelColorSpace オブジェクトによって指定された成分ごとの最小と最大の間の float 値です。normComponents 配列が null の場合は、新しい配列が割り当てられます。その normComponents 配列が返されます。色成分とアルファ成分は、normOffset から始まる normComponents 配列に格納されます。これは、配列がこのメソッドで割り当てられている場合も同様です。normComponents 配列が null でなく、色成分とアルファ成分 (normOffset から始まる) のすべてを格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。

サブクラスがデフォルトとは異なる方法でピクセルサンプル値を色成分値へ変換するよう設計されている場合は、このメソッドをサブクラスでオーバーライドする必要があります。このクラスにより実装されるデフォルトの変換は、クラスのコメントに記述されています。デフォルトではない変換を実装するサブクラスは、このコメントに定義された許容変換の制約に従う必要があります。

オーバーライド:
クラス ColorModel 内の getNormalizedComponents
パラメータ:
pixel - 指定されたピクセル
normComponents - 標準化成分を受け取る配列
normOffset - 標準化成分の格納を開始する、normComponents 配列内のオフセット
戻り値:
標準化されている色成分およびアルファ成分が格納されている配列
例外:
ClassCastException - pixel が transferType 型のプリミティブ配列でない場合
ArrayIndexOutOfBoundsException - normComponents の大きさが normOffset を起点にすべての色成分およびアルファ成分を保持するのに十分でない場合
ArrayIndexOutOfBoundsException - pixel がこの ColorModel のピクセル値を保持するのに十分な大きさでない場合
導入されたバージョン:
1.4

coerceData

public ColorModel coerceData(WritableRaster raster,
                             boolean isAlphaPremultiplied)
ラスタデータが isAlphaPremultiplied 変数で指定された状態と一致するようにします。このとき、データはこの ColorModel によって現在正しく記述されていると見なされます。このメソッドは、カラーラスタデータをアルファで乗算または除算します。データが正しい状態にある場合には、処理は行いません。データが強制的に型変換される必要がある場合、このメソッドは isAlphaPremultiplied フラグを正しく設定した、この ColorModel のインスタンスも返します。ColorModel はサブクラス化できるため、サブクラスはこのメソッドの実装を継承しますが、サブクラスがその実装をオーバーライドせず、しかもサポートされていない transferType を使用した場合、例外がスローされます。

オーバーライド:
クラス ColorModel 内の coerceData
パラメータ:
raster - WritableRaster データ
isAlphaPremultiplied - アルファがあらかじめ乗算される場合は true、そうでない場合は false
戻り値:
強制的に型変換されたデータを表す ColorModel オブジェクト
例外:
NullPointerException - rasternull で、強制変換が必要な場合
UnsupportedOperationException - この ComponentColorModel の転送型が、サポートされている転送型 (DataBuffer.TYPE_BYTEDataBuffer.TYPE_USHORTDataBuffer.TYPE_INTDataBuffer.TYPE_SHORTDataBuffer.TYPE_FLOATDataBuffer.TYPE_DOUBLE) のいずれでもない場合

isCompatibleRaster

public boolean isCompatibleRaster(Raster raster)
raster がこの ColorModel と互換性がある場合に true を返し、そうでない場合は false を返します。

オーバーライド:
クラス ColorModel 内の isCompatibleRaster
パラメータ:
raster - 互換性を判定する Raster オブジェクト
戻り値:
raster がこの ColorModel と互換性がある場合は true、そうでない場合は false

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int w,
                                                     int h)
指定された幅および高さで、この ColorModel と互換性のあるデータレイアウト (SampleModel) を持つ WritableRaster を作成します。

オーバーライド:
クラス ColorModel 内の createCompatibleWritableRaster
パラメータ:
w - 生成する WritableRaster の幅
h - 生成する WritableRaster の高さ
戻り値:
この ColorModel と互換性のある WritableRaster
関連項目:
WritableRaster, SampleModel

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)
指定された幅および高さで、この ColorModel と互換性のあるデータレイアウトを持つ SampleModel を作成します。

オーバーライド:
クラス ColorModel 内の createCompatibleSampleModel
パラメータ:
w - 生成する SampleModel の幅
h - 生成する SampleModel の高さ
戻り値:
この ColorModel と互換性のある SampleModel
関連項目:
SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)
指定された SampleModel がこの ColorModel と互換性があるかどうかを判定します。

オーバーライド:
クラス ColorModel 内の isCompatibleSampleModel
パラメータ:
sm - 互換性を判定する SampleModel
戻り値:
SampleModel がこの ColorModel と互換性がある場合は true、そうでない場合は false
関連項目:
SampleModel

getAlphaRaster

public WritableRaster getAlphaRaster(WritableRaster raster)
イメージのアルファチャネルを表現する Raster を、入力された Raster から抽出して返します。このメソッドは、この ColorModel に関連した Raster オブジェクトにアルファバンドがあれば、そのアルファバンドをイメージデータの最終バンドとして格納していると見なします。この ColorModel に関連した空間アルファチャネルがほかにない場合は、null を返します。このメソッドは新しい Raster を作成しますが、データ配列は共有することになります。

オーバーライド:
クラス ColorModel 内の getAlphaRaster
パラメータ:
raster - アルファチャネルを抽出する WritableRaster
戻り値:
イメージのアルファチャネルが格納されている WritableRaster

equals

public boolean equals(Object obj)
このカラーモデルと別のカラーモデルとが等しいかどうかを比較します。

オーバーライド:
クラス ColorModel 内の equals
パラメータ:
obj - このカラーモデルと比較するオブジェクト
戻り値:
2 つのカラーモデルオブジェクトが等しい場合は true、そうでない場合は false

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.