public abstract class ColorModel extends Object implements Transparency
ColorModel
抽象クラスは、ピクセル値を色成分(赤、緑、青など)およびアルファ成分に変換するメソッドをカプセル化します。イメージをスクリーン、プリンタ、またはほかのイメージに描画するには、ピクセル値を色成分およびアルファ成分に変換する必要があります。このクラスのメソッドの引数または戻り値として、ピクセルは32ビットintまたはプリミティブ型の配列として表されます。ColorModel
の色成分の数、順序、および解釈は、ColorSpace
で指定します。アルファ情報を持たないピクセル・データとともに使用されるColorModel
は、すべてのピクセルを不透明(アルファ値1.0)として処理します。
このColorModel
クラスでは、ピクセル値の2つの表現をサポートします。ピクセル値は、単一の32ビットintまたはプリミティブ型の配列として表すことができます。Java(TM) Platform 1.0および1.1 APIでは、ピクセルは単一のbyte
値または単一のint
値で表現されました。ColorModel
クラスでは、ピクセル値引数はintとして渡されました。Java(TM) 2 Platform APIでは、イメージを表すための新しいクラスが導入されました。Raster
クラスおよびSampleModel
クラスに基づくBufferedImage
オブジェクトまたはRenderedImage
オブジェクトの場合、ピクセル値は単一のintとしては表現できません。このため、現在、ColorModel
にはプリミティブ型の配列として表示されたピクセル値を受け入れるメソッドがあります。特定のColorModel
オブジェクトによって使用されるプリミティブ型は、転送型と呼ばれます。
ピクセル値を単一のintとして表現できないイメージとともに使用されるColorModel
オブジェクトは、単一のintピクセル引数をとるメソッドが呼び出されるとIllegalArgumentException
をスローします。ColorModel
のサブクラスでは、この例外が発生する条件を指定する必要があります。DirectColorModel
オブジェクトやIndexColorModel
オブジェクトでは、この例外は発生しません。
現在Java 2D(TM) APIでサポートされている転送型は、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、DataBuffer.TYPE_INT、DataBuffer.TYPE_SHORT、DataBuffer.TYPE_FLOAT、およびDataBuffer.TYPE_DOUBLEです。転送型の初めの3つに基づくColorModelとイメージを使用すると、ほとんどの描画操作がより速く実行されます。また、残りの3つの転送型に基づくColorModelとイメージについては、イメージのフィルタ操作のうちのいくつかがサポートされていません。特定のColorModel
オブジェクトの転送型は、オブジェクトが生成されるときに明示的にまたはデフォルトで指定されます。ColorModel
の各サブクラスでは、利用可能な転送型がいずれか、およびピクセルを表すプリミティブ配列の要素数がどのように決められるかを指定する必要があります。
BufferedImages
の場合、Raster
およびRaster
オブジェクトのSampleModel
の転送型(それらのクラスのgetTransferType
メソッドを介して取得できます)は、ColorModel
の転送型と一致する必要があります。Raster
およびSampleModel
のピクセルを表す配列の要素数(それらのクラスのgetNumDataElements
メソッドを介して取得できます)は、ColorModel
と一致する必要があります。
ピクセル値から色成分およびアルファ成分への変換に使用するアルゴリズムは、サブクラスによって異なります。たとえば、BufferedImage
オブジェクトのRaster
のSampleModel
によって得られるサンプルと色成分およびアルファ成分の間は1対1で対応していなくてもかまいません。1対1の対応がある場合でも、サンプルのビット数は、対応する色成分およびアルファ成分のビット数と同じでなくてもかまいません。各サブクラスでは、ピクセル値から色成分およびアルファ成分への変換がどのように行われるかを指定する必要があります。
ColorModel
クラスのメソッドは、色成分およびアルファ成分の2つの異なる表現である標準化形式と非標準化形式を使用します。標準化形式では、各成分は最小値と最大値の間のfloat
値です。アルファ成分では、最小値は0.0、最大値は1.0です。色成分では、各成分の最小値と最大値はColorSpace
オブジェクトから取得でき、値は通常0.0と1.0 (デフォルトのsRGBカラー領域にある標準化成分の値の範囲は0.0 - 1.0、など)ですが、これと異なる上限と下限の成分値を持つカラー領域もあります。これらの限界値はColorSpace
クラスのgetMinValue
メソッドおよびgetMaxValue
メソッドを使用して取得できます。標準化色成分値はあらかじめ乗算されません。すべてのColorModels
は標準化形式をサポートする必要があります。
非標準化形式では、各成分は0と2n - 1の間の符号なし整数値です。nは、特定の成分の有効ビットの数です。特定のColorModel
のピクセル値がアルファ・サンプルであらかじめ乗算されているカラー・サンプルを表す場合、非標準化色成分も同じようにあらかじめ乗算されます。非標準化形式は、ColorSpace
がすべての成分に対して最小成分値が0.0、最大成分値が1.0であるColorModel
のインスタンスのみとともに使用されます。非標準化形式の色成分とアルファ成分は、標準化成分値がすべて0.0と1.0の間にあるColorModels
を表すことができます。このような場合、整数値0は0.0にマップされ、値2n -1は1.0にマップされます。これ以外の、たとえば標準化成分値が正または負の場合は、非標準化形式は適切ではありません。このようなColorModel
オブジェクトは、非標準化引数を含むメソッドが呼び出されるとIllegalArgumentException
をスローします。ColorModel
のサブクラスでは、この例外が発生する条件を指定する必要があります。
修飾子と型 | フィールドと説明 |
---|---|
protected int |
pixel_bits
ピクセルの総ビット数です。
|
protected int |
transferType
ピクセル値の表現に使用される配列のデータ型です。
|
BITMASK, OPAQUE, TRANSLUCENT
修飾子 | コンストラクタと説明 |
---|---|
|
ColorModel(int bits)
指定されたビット数のピクセルを色成分およびアルファ成分に変換する
ColorModel を構築します。 |
protected |
ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ピクセル値を色成分およびアルファ成分に変換する
ColorModel を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
ColorModel |
coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
ラスター・データが
isAlphaPremultiplied 変数で指定された状態と一致するようにします。このとき、データはこのColorModel によって現在正しく記述されていると見なされます。 |
SampleModel |
createCompatibleSampleModel(int w, int h)
この
ColorModel と互換性のあるデータ・レイアウトを持つ、指定された幅と高さのSampleModel を作成します。 |
WritableRaster |
createCompatibleWritableRaster(int w, int h)
この
ColorModel と互換性のあるデータ・レイアウト(SampleModel )を持つ、指定された幅と高さのWritableRaster を作成します。 |
boolean |
equals(Object obj)
指定された
Object がColorModel のインスタンスで、このColorModel と等しいかどうかを判定します。 |
void |
finalize()
この
ColorModel が参照されなくなったときに、このColorModel に関連付けられたシステム・リソースを破棄します。 |
abstract int |
getAlpha(int pixel)
指定されたピクセルのアルファ成分を、0 - 255の範囲でスケーリングして返します。
|
int |
getAlpha(Object inData)
指定されたピクセルのアルファ成分を、0 - 255の範囲でスケーリングして返します。
|
WritableRaster |
getAlphaRaster(WritableRaster raster)
この
ColorModel のピクセル値が別々の空間バンドとして色情報およびアルファ情報を表す場合に、入力Raster から抽出された、イメージのアルファ・チャネルを表すRaster を返します。 |
abstract int |
getBlue(int pixel)
指定されたピクセルの青の色成分を、デフォルトのRGB ColorSpace、つまりsRGBの0 - 255の範囲でスケーリングして返します。
|
int |
getBlue(Object inData)
指定されたピクセルの青の色成分を、デフォルトのRGB
ColorSpace 、つまりsRGBの0 - 255の範囲でスケーリングして返します。 |
ColorSpace |
getColorSpace()
この
ColorModel に関連付けられたColorSpace を返します。 |
int[] |
getComponents(int pixel, int[] components, int offset)
この
ColorModel でピクセルを指定して、標準化されていない色成分とアルファ成分の配列を返します。 |
int[] |
getComponents(Object pixel, int[] components, int offset)
この
ColorModel でピクセルを指定して、標準化されていない色成分とアルファ成分の配列を返します。 |
int[] |
getComponentSize()
色成分およびアルファ成分ごとのビット数の配列を返します。
|
int |
getComponentSize(int componentIdx)
指定された色成分およびアルファ成分のビット数を返します。
|
int |
getDataElement(float[] normComponents, int normOffset)
標準化された色成分およびアルファ成分の配列を指定して、この
ColorModel にint として表されるピクセル値を返します。 |
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カラー・モデルの整数型ピクセル表現を指定して、この
ColorModel のピクセルのデータ要素配列表現を返します。 |
abstract 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 |
getNumColorComponents()
この
ColorModel の色成分数を返します。 |
int |
getNumComponents()
この
ColorModel の成分(アルファを含む)の数を返します。 |
int |
getPixelSize()
この
ColorModel によって記述されるピクセルごとのビット数を返します。 |
abstract 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カラー・モデル形式で返します。
|
static ColorModel |
getRGBdefault()
プログラマのために、AWTイメージ・インタフェースの多くのメソッドで使用される整数型RGB値のデフォルト形式を記述する
DirectColorModel を返します。 |
int |
getTransferType()
この
ColorModel の転送型を返します。 |
int |
getTransparency()
透明度を返します。
|
int[] |
getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
標準化成分配列を指定して、非標準化形式ですべての色成分およびアルファ成分の配列を返します。
|
boolean |
hasAlpha()
アルファがこの
ColorModel でサポートされているかどうかを返します。 |
int |
hashCode()
このColorModelのハッシュ・コードを返します。
|
boolean |
isAlphaPremultiplied()
この
ColorModel で変換されるピクセル値でアルファがあらかじめ乗算されているかどうかを返します。 |
boolean |
isCompatibleRaster(Raster raster)
raster がこのColorModel と互換性がある場合にはtrue を返し、そうでない場合にはfalse を返します。 |
boolean |
isCompatibleSampleModel(SampleModel sm)
SampleModel がこのColorModel と互換性があるかどうかを判定します。 |
String |
toString()
この
ColorModel オブジェクトの内容を表すString を返します。 |
protected int pixel_bits
protected int transferType
public ColorModel(int bits)
ColorModel
を構築します。カラー・スペースはデフォルトのRGB ColorSpace
(sRGB)です。ピクセル値には、アルファ情報が含まれていると見なされます。色およびアルファの情報が別々の空間バンドとしてピクセル値で表される場合、カラー・バンドにはアルファ値があらかじめ乗算されていません。透明度型は、java.awt.Transparency.TRANSLUCENTです。転送型は、単一ピクセルを保持することができるDataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTの最小値です(ビットが32より大きい場合はDataBuffer.TYPE_UNDEFINED)。このコンストラクタは色成分およびアルファ成分ごとのビット数に関する情報を持たないので、このコンストラクタを呼び出すサブクラスは、この情報を必要とするメソッドをオーバーライドします。bits
- ピクセルのビット数IllegalArgumentException
- bits
のビット数が1より小さい場合protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
ColorModel
を構築します。色成分は、指定されたColorSpace
内になります。pixel_bits
は、ピクセル値のビット数です。bits配列は、色成分およびアルファ成分ごとの有効ビット数を指定します。その長さは、ピクセル値にアルファ情報がない場合にはColorSpace
の成分数、アルファ情報がある場合にはこの数よりも1大きくなります。hasAlpha
は、アルファ情報が存在するかどうかを示します。boolean
型のisAlphaPremultiplied
は、色情報およびアルファ情報が別々の空間バンドとして表されるピクセル値を解釈する方法を指定します。boolean
がtrue
の場合は、カラー・サンプルはアルファ・サンプルと乗算されたと見なされます。transparency
は、このカラー・モデルで表現できるアルファ値を指定します。転送タイプは、ピクセル値を表現するために使うプリミティブ配列の型です。ビット配列は、ピクセル値からの変換後の色成分およびアルファ成分ごとの有効ビット数を格納します。たとえば、pixel_bits
が16のIndexColorModel
の場合、ビット配列は各要素が8に設定されている4つの要素を持ちます。pixel_bits
- ピクセル値のビット数bits
- 色成分およびアルファ成分ごとの有効ビット数を指定する配列cspace
- 指定されたColorSpace
hasAlpha
- アルファ情報が存在する場合はtrue
、そうでない場合はfalse
isAlphaPremultiplied
- カラー・サンプルがアルファ・サンプルによってあらかじめ乗算されていると見なされる場合はtrue
、そうでない場合はfalse
transparency
- このカラー・モデルで表すことができるアルファ値transferType
- ピクセル値の表現に使用される配列の型IllegalArgumentException
- ビット配列の長さがこのColorModel
の色成分またはアルファ成分の数より小さい場合、または透明度が有効な値でない場合。IllegalArgumentException
- bits
のビット数の合計が1より小さい場合、またはbits
の要素が0より小さい場合。Transparency
public static ColorModel getRGBdefault()
DirectColorModel
を返します。カラー・スペースは、デフォルトのColorSpace
(sRGB)です。RGB値の形式は、0xAARRGGBBのように、最上位バイトから最下位バイトまで、アルファ、赤、緑、および青の各成分をこの順に並べた、それぞれ8ビットの整数です。色成分は、アルファ成分によってあらかじめ乗算されません。この形式は、特定のデバイスまたはすべてのイメージのネイティブまたはもっとも効率的なColorModel
を必ずしも表しません。共通のカラー・モデル形式として使用されます。DirectColorModel
オブジェクト。public final boolean hasAlpha()
ColorModel
でサポートされているかどうかを返します。ColorModel
でアルファがサポートされている場合はtrue
、そうでない場合はfalse
。public final boolean isAlphaPremultiplied()
ColorModel
で変換されるピクセル値でアルファがあらかじめ乗算されているかどうかを返します。booleanがtrue
の場合、このColorModel
は色情報およびアルファ情報が別々の空間バンドとして表されるピクセル値を解釈するために使用され、カラー・サンプルはアルファ・サンプルによって乗算されたと見なされます。ColorModel
で変換されるピクセル値でアルファ値があらかじめ乗算されている場合はtrue
、そうでない場合はfalse
。public final int getTransferType()
ColorModel
の転送型を返します。転送型は、ピクセル値を配列として表すのに使われるプリミティブ配列の型です。public int getPixelSize()
ColorModel
によって記述されるピクセルごとのビット数を返します。public int getComponentSize(int componentIdx)
ColorSpace
で指定された順序でインデックスが付けられます。通常、この順序はカラー・スペースの型の名前を反映します。たとえば、TYPE_RGBの場合、インデックス0は赤、インデックス1は緑、インデックス2は青に対応します。このColorModel
がアルファをサポートする場合、アルファ成分は最後に指定された色成分のあとのインデックスに対応します。componentIdx
- 色成分およびアルファ成分のインデックスArrayIndexOutOfBoundsException
- componentIdx
が成分の数より大きいか、0より小さい場合NullPointerException
- ビット配列の数がnull
の場合public int[] getComponentSize()
ColorSpace
で指定された順序で色成分を格納し、アルファ成分がある場合は、次にアルファ成分が続きます。public int getTransparency()
getTransparency
、インタフェース: Transparency
ColorModel
の透明度。Transparency.OPAQUE
, Transparency.BITMASK
, Transparency.TRANSLUCENT
public int getNumComponents()
ColorModel
の成分(アルファを含む)の数を返します。これは、色成分の数(アルファ成分がある場合は1を加算)と等しくなります。ColorModel
の成分数public int getNumColorComponents()
ColorModel
の色成分数を返します。これは、ColorSpace.getNumComponents()
によって返された成分数です。ColorModel
の色成分数。ColorSpace.getNumComponents()
public abstract int getRed(int pixel)
ColorModel
のピクセル値が単一のintとして表現できない場合はIllegalArgumentException
がスローされます。戻り値はあらかじめ乗算されていない値になります。たとえば、アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にそれを除算します。アルファ値が0の場合、赤の値は0になります。pixel
- 指定されたピクセルpublic abstract int getGreen(int pixel)
ColorModel
のピクセル値が単一のintとして表現できない場合はIllegalArgumentException
がスローされます。戻り値は、あらかじめ乗算されていない値になります。たとえば、アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にそれを除算します。アルファ値が0の場合、緑の値は0になります。pixel
- 指定されたピクセルpublic abstract int getBlue(int pixel)
ColorModel
のピクセル値が単一のintとして表現できない場合はIllegalArgumentException
がスローされます。戻り値は、あらかじめ乗算されていない値になります。たとえば、アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にそれを除算します。アルファ値が0の場合、青の値は0になります。pixel
- 指定されたピクセルpublic abstract int getAlpha(int pixel)
ColorModel
のピクセル値が単一のintとして表現できない場合はIllegalArgumentException
がスローされます。pixel
- 指定されたピクセルpublic int getRGB(int pixel)
ColorModel
のピクセル値が単一のintとして表現できない場合はIllegalArgumentException
がスローされます。戻り値は、あらかじめ乗算されていない形式になります。たとえば、アルファがあらかじめ乗算されている場合、このメソッドはそれを色成分で除算します。アルファ値が0の場合、色の値は0になります。pixel
- 指定されたピクセルgetRGBdefault()
public int getRed(Object inData)
ColorSpace
、つまりsRGBの0 - 255の範囲でスケーリングして返します。必要な場合、色変換が行われます。pixel値は、オブジェクト参照として渡されたtransferType型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値になります。たとえば、アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にそれを除算します。アルファ値が0の場合、赤の値は0になります。inData
がtransferType型のプリミティブ配列でない場合、ClassCastException
がスローされます。inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。このtransferType
がサポートされていない場合は、UnsupportedOperationException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスである必要があります。サブクラスはこのメソッドの実装を継承します。サブクラスがその実装をオーバーライドしない場合、サブクラスがDataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、またはDataBuffer.TYPE_INT
以外のtransferType
を使用すると、このメソッドは例外をスローします。inData
- ピクセル値の配列ClassCastException
- inData
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合UnsupportedOperationException
- このColorModel
でこのtranferType
がサポートされていない場合public int getGreen(Object inData)
ColorSpace
、つまりsRGBの0 - 255の範囲でスケーリングして返します。必要な場合、色変換が行われます。pixel値は、オブジェクト参照として渡されたtransferType型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値です。たとえば、アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にそれを除算します。アルファ値が0の場合、緑の値は0になります。inData
がtransferType型のプリミティブ配列でない場合、ClassCastException
がスローされます。inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。このtransferType
がサポートされていない場合は、UnsupportedOperationException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスである必要があります。サブクラスはこのメソッドの実装を継承します。サブクラスがその実装をオーバーライドしない場合、サブクラスがDataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、またはDataBuffer.TYPE_INT
以外のtransferType
を使用すると、このメソッドは例外をスローします。inData
- ピクセル値の配列ClassCastException
- inData
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合UnsupportedOperationException
- このColorModel
でこのtranferType
がサポートされていない場合public int getBlue(Object inData)
ColorSpace
、つまりsRGBの0 - 255の範囲でスケーリングして返します。必要な場合、色変換が行われます。pixel値は、オブジェクト参照として渡されたtransferType型のデータ要素からなる配列によって指定されます。戻り値は、あらかじめ乗算されていない値になります。たとえば、アルファがあらかじめ乗算されている場合、このメソッドは値を返す前にそれを除算します。アルファ値が0の場合、青の値は0になります。inData
がtransferType型のプリミティブ配列でない場合、ClassCastException
がスローされます。inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。このtransferType
がサポートされていない場合は、UnsupportedOperationException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスである必要があります。サブクラスはこのメソッドの実装を継承します。サブクラスがその実装をオーバーライドしない場合、サブクラスがDataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、またはDataBuffer.TYPE_INT
以外のtransferType
を使用すると、このメソッドは例外をスローします。inData
- ピクセル値の配列ClassCastException
- inData
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合UnsupportedOperationException
- このColorModel
でこのtranferType
がサポートされていない場合public int getAlpha(Object inData)
ClassCastException
がスローされます。inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。このtransferType
がサポートされていない場合は、UnsupportedOperationException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスである必要があります。サブクラスはこのメソッドの実装を継承します。サブクラスがその実装をオーバーライドしない場合、サブクラスがDataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、またはDataBuffer.TYPE_INT
以外のtransferType
を使用すると、このメソッドは例外をスローします。inData
- 指定されたピクセルClassCastException
- inData
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合UnsupportedOperationException
- このColorModel
でこのtranferType
がサポートされていない場合public int getRGB(Object inData)
ClassCastException
がスローされます。inData
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。戻り値は、あらかじめ乗算されていない値です。つまり、アルファがあらかじめ乗算されている場合、このメソッドは色成分でそれを除算します。アルファ値が0の場合、色の値は0になります。inData
- 指定されたピクセルgetRGBdefault()
public Object getDataElements(int rgb, Object pixel)
ColorModel
のピクセルのデータ要素配列表現を返します。次に、この配列はWritableRaster
オブジェクトのWritableRaster.setDataElements(int, int, java.lang.Object)
メソッドに渡すことができます。pixel変数がnull
の場合は、新しい配列が割り当てられます。pixel
がnull
でない場合、transferType
型のプリミティブ配列でなければならず、そうでない場合はClassCastException
がスローされます。pixel
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ピクセル配列が返されます。このtransferType
がサポートされていない場合は、UnsupportedOperationException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。rgb
- デフォルトRGBカラー・モデルの整数型ピクセル表現pixel
- 指定されたピクセルColorModel
の指定されたピクセルの配列表現。ClassCastException
- pixel
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- pixel
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合UnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合WritableRaster.setDataElements(int, int, java.lang.Object)
, SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel
でピクセルを指定して、標準化されていない色成分とアルファ成分の配列を返します。ピクセル値はint
として指定されます。このColorModel
のピクセル値が単一のint
として表現できない場合、またはこのColorModel
の色成分値が非標準化形式で表現できない場合は、IllegalArgumentException
がスローされます。たとえば、このメソッドは、DirectColorModel
の特定のピクセル値の成分を取り出すために使用できます。components配列がnull
の場合は、新しい配列が割り当てられます。components配列が返されます。色成分およびアルファ成分は、offset
を起点にcomponents配列に格納されます。配列がこのメソッドで割り当てられている場合も同様です。components配列がnull
でなく、offsetを起点にした場合に、色成分とアルファ成分のすべてを保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。pixel
- 指定されたピクセルcomponents
- 指定されたピクセルの色成分およびアルファ成分を受け取る配列offset
- 色成分およびアルファ成分の格納を開始する、components
配列へのオフセットUnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel
でピクセルを指定して、標準化されていない色成分とアルファ成分の配列を返します。pixel値は、オブジェクト参照として渡されたtransferType型のデータ要素からなる配列によって指定されます。pixel
がtransferType型のプリミティブ配列でない場合は、ClassCastException
がスローされます。このColorModel
の色成分値が非標準化形式で表現できない場合は、IllegalArgumentException
がスローされます。pixel
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。このメソッドは、任意のColorModel
の特定のピクセル値の成分を取り出すために使用できます。components配列がnull
の場合は、新しい配列が割り当てられます。components配列が返されます。色成分とアルファ成分は、offset
から始まるcomponents
配列に格納されます。これは、配列がこのメソッドで割り当てられても変わりません。components配列がnull
でなく、offset
を起点にした場合に、色成分とアルファ成分のすべてを保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。pixel
- 指定されたピクセルcomponents
- 指定されたピクセルの色成分およびアルファ成分を受け取る配列offset
- 指定されたピクセルの色成分およびアルファ成分の格納を開始する、components
配列へのインデックスUnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
ColorModel
のColorSpace
オブジェクトによって指定された成分ごとの最小と最大の間のfloat値です。このColorModel
の色成分値が非標準化形式で表現できない場合は、IllegalArgumentException
がスローされます。components
の配列がnull
の場合は、新しい配列が割り当てられます。components
配列が返されます。色成分とアルファ成分は、offset
から始まるcomponents
配列に格納されます。これは、配列がこのメソッドで割り当てられても変わりません。components
配列がnull
でない場合に、(offset
を起点に)すべての色成分およびアルファ成分を保持するのに十分な大きさでないときは、ArrayIndexOutOfBoundsException
がスローされます。normComponents
配列がnormOffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合は、IllegalArgumentException
がスローされます。normComponents
- 標準化成分を格納している配列normOffset
- 標準化成分の取得を開始する、normComponents
配列へのオフセットcomponents
- normComponents
から成分を受け取る配列offset
- normComponents
から標準化成分の格納を開始する、components
のインデックスIllegalArgumentException
- このColorModel
の成分値が非標準化形式で表現できない場合。IllegalArgumentException
- normComponents
の長さマイナスnormOffset
が、numComponents
より小さい場合UnsupportedOperationException
- このColorModel
のコンストラクタがsuper(bits)
コンストラクタを呼び出したが、このメソッドをオーバーライドしなかった場合。コンストラクタColorModel(int)
を参照してください。public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
ColorModel
のColorSpace
オブジェクトによって指定された成分ごとの最小と最大の間のfloat値です。このColorModel
の色成分値が非標準化形式で表現できない場合は、IllegalArgumentException
がスローされます。normComponents
の配列がnull
の場合は、新しい配列が割り当てられます。normComponents
配列が返されます。色成分とアルファ成分は、normOffset
から始まるnormComponents
配列に格納されます。これは、配列がこのメソッドで割り当てられても変わりません。normComponents
配列がnull
でない場合に、(normOffset
を起点に)すべての色成分およびアルファ成分を保持するのに十分な大きさでないときは、ArrayIndexOutOfBoundsException
がスローされます。components
配列がoffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合は、IllegalArgumentException
がスローされます。
ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスでの、このメソッドのデフォルトの実装は、このクラスの成分値が非標準化形式で表現されると見なします。したがって、非標準化形式をサポートしないインスタンスを持つサブクラスは、このメソッドをオーバーライドする必要があります。
components
- 標準化されていない成分を格納している配列offset
- 標準化されていない成分の取得を開始する、components
配列へのオフセットnormComponents
- 標準化成分を受け取る配列normOffset
- 標準化成分の格納を開始する、normComponents
のインデックスIllegalArgumentException
- このColorModel
の成分値が非標準化形式で表現できない場合。UnsupportedOperationException
- このColorModel
のコンストラクタがsuper(bits)
コンストラクタを呼び出したが、このメソッドをオーバーライドしなかった場合。コンストラクタColorModel(int)
を参照してください。UnsupportedOperationException
- このメソッドが成分ごとのビット数を判定できなかった場合public int getDataElement(int[] components, int offset)
ColorModel
のint
として表現されるピクセル値を返します。このColorModel
の成分値が単一のint
として表現できない場合、またはこのColorModel
の色成分値が非標準化形式で表現できない場合は、このメソッドはIllegalArgumentException
をスローします。components
配列がoffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。components
- 標準化されていない色成分およびアルファ成分の配列offset
- 色成分およびアルファ成分の取得を開始する、components
のインデックスColorModel
内のint
ピクセル値。IllegalArgumentException
- このColorModel
のピクセル値が単一のint
として表現できない場合IllegalArgumentException
- このColorModel
の成分値が非標準化形式で表現できない場合ArrayIndexOutOfBoundsException
- components
配列がoffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合UnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合public Object getDataElements(int[] components, int offset, Object obj)
ColorModel
のピクセルのデータ要素配列表現を返します。次に、この配列はWritableRaster
オブジェクトのsetDataElements
メソッドに渡すことができます。このColorModel
の色成分値が非標準化形式で表現できない場合、このメソッドはIllegalArgumentException
をスローします。components
配列がoffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。obj
変数がnull
の場合は、新しい配列が割り当てられます。obj
がnull
でない場合、transferType型のプリミティブ配列でなければならず、そうでない場合はClassCastException
がスローされます。obj
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。components
- 標準化されていない色成分およびアルファ成分の配列offset
- 色成分およびアルファ成分の取得を開始する、components
のインデックスobj
- 色成分およびアルファ成分の配列を表すObject
Object
。ClassCastException
- obj
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- obj
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合、あるいはcomponents
配列が、offset
を開始点にして、すべての色成分およびアルファ成分を保持するのに十分な大きさでない場合IllegalArgumentException
- このColorModel
の成分値が非標準化形式で表現できない場合UnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合WritableRaster.setDataElements(int, int, java.lang.Object)
, SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int getDataElement(float[] normComponents, int normOffset)
ColorModel
にint
として表されるピクセル値を返します。このColorModel
のピクセル値が単一のint
として表現できない場合、このメソッドはIllegalArgumentException
をスローします。normComponents
配列がnormOffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスでの、このメソッドのデフォルトの実装は、標準化形式を非標準化形式に変換してからgetDataElement(int[], int)
を呼び出します。非標準化形式をサポートしないインスタンスを持つサブクラスは、このメソッドをオーバーライドする必要があります。normComponents
- 標準化された色成分およびアルファ成分の配列normOffset
- 色成分およびアルファ成分の取得を開始する、normComponents
のインデックスColorModel
内のint
ピクセル値。IllegalArgumentException
- このColorModel
のピクセル値が単一のint
として表現できない場合ArrayIndexOutOfBoundsException
- normComponents
配列がnormOffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合public Object getDataElements(float[] normComponents, int normOffset, Object obj)
ColorModel
のピクセルのデータ要素配列表現を返します。次に、この配列はWritableRaster
オブジェクトのsetDataElements
メソッドに渡すことができます。normComponents
配列がnormOffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。obj
変数がnull
の場合は、新しい配列が割り当てられます。obj
がnull
でない場合、transferType型のプリミティブ配列でなければならず、そうでない場合はClassCastException
がスローされます。obj
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスでの、このメソッドのデフォルトの実装は、標準化形式を非標準化形式に変換してからgetDataElement(int[], int, Object)
を呼び出します。非標準化形式をサポートしないインスタンスを持つサブクラスは、このメソッドをオーバーライドする必要があります。normComponents
- 標準化された色成分およびアルファ成分の配列normOffset
- 色成分およびアルファ成分の取得を開始する、normComponents
のインデックスobj
- 返されたピクセルを保持するプリミティブ・データ配列Object
ClassCastException
- obj
がtransferType
型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- obj
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合、あるいはnormComponents
配列が、normOffset
を開始点にして、すべての色成分およびアルファ成分を保持するのに十分な大きさでない場合WritableRaster.setDataElements(int, int, java.lang.Object)
, SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
ColorModel
の指定されたピクセルについて、標準化形式で色成分とアルファ成分の配列を返します。pixel値は、オブジェクト参照として渡されたtransferType型のデータ要素からなる配列によって指定されます。pixelがtransferType型のプリミティブ配列でない場合は、ClassCastException
がスローされます。pixel
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合は、ArrayIndexOutOfBoundsException
がスローされます。標準化成分は、このColorModel
のColorSpace
オブジェクトによって指定された成分ごとの最小と最大の間のfloat値です。normComponents
の配列がnull
の場合は、新しい配列が割り当てられます。normComponents
配列が返されます。色成分とアルファ成分は、normOffset
から始まるnormComponents
配列に格納されます。これは、配列がこのメソッドで割り当てられても変わりません。normComponents
配列がnull
でない場合に、(normOffset
を起点に)すべての色成分およびアルファ成分を保持するのに十分な大きさでないときは、ArrayIndexOutOfBoundsException
がスローされます。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスでの、このメソッドのデフォルトの実装は、getComponents(Object, int[], int)
を使用して非標準化形式で色成分とアルファ成分を取り出してからgetNormalizedComponents(int[], int, float[], int)
を呼び出します。非標準化形式をサポートしないインスタンスを持つサブクラスは、このメソッドをオーバーライドする必要があります。pixel
- 指定されたピクセルnormComponents
- 標準化成分を受け取る配列normOffset
- 標準化成分の格納を開始する、normComponents
配列へのオフセットClassCastException
- pixel
がtransferType型のプリミティブ配列でない場合ArrayIndexOutOfBoundsException
- normComponents
がnormOffset
を起点にすべての色成分とアルファ成分を保持するのに十分な大きさでない場合ArrayIndexOutOfBoundsException
- pixel
がこのColorModel
のピクセル値を保持するのに十分な大きさでない場合。UnsupportedOperationException
- このColorModel
のコンストラクタがsuper(bits)
コンストラクタを呼び出したが、このメソッドをオーバーライドしなかった場合。コンストラクタColorModel(int)
を参照してください。UnsupportedOperationException
- このメソッドが成分ごとのビット数を判定できなかった場合public boolean equals(Object obj)
Object
がColorModel
のインスタンスで、このColorModel
と等しいかどうかを判定します。equals
、クラス: Object
obj
- 等しいかどうかが判定されるObject
Object
がColorModel
のインスタンスで、このColorModel
に等しい場合はtrue
、それ以外の場合はfalse
。Object.hashCode()
、HashMap
public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public final ColorSpace getColorSpace()
ColorModel
に関連付けられたColorSpace
を返します。ColorModel
のColorSpace
。public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
isAlphaPremultiplied
変数で指定された状態と一致するようにします。このとき、データはこのColorModel
によって現在正しく記述されていると見なされます。このメソッドは、カラー・ラスター・データをアルファで乗算または除算します。データが正しい状態にある場合には、処理は行いません。データを強制的に型変換する必要がある場合、このメソッドはisAlphaPremultiplied
フラグを正しく設定した、このColorModel
のインスタンスも返します。このColorModel
によってサポートされていない場合、このメソッドはUnsupportedOperationException
をスローします。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。raster
- WritableRaster
データisAlphaPremultiplied
- アルファがあらかじめ乗算されている場合はtrue
、そうでない場合はfalse
ColorModel
オブジェクト。public boolean isCompatibleRaster(Raster raster)
raster
がこのColorModel
と互換性がある場合にはtrue
を返し、そうでない場合にはfalse
を返します。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。raster
- 互換性を判定するRaster
オブジェクトraster
がこのColorModel
と互換性がある場合はtrue
。UnsupportedOperationException
- このColorModel
でこのメソッドが実装されていない場合public WritableRaster createCompatibleWritableRaster(int w, int h)
ColorModel
と互換性のあるデータ・レイアウト(SampleModel
)を持つ、指定された幅と高さのWritableRaster
を作成します。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。w
- 新しいWritableRaster
に適用される幅h
- 新しいWritableRaster
に適用される高さWritableRaster
オブジェクト。UnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合WritableRaster
、SampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
ColorModel
と互換性のあるデータ・レイアウトを持つ、指定された幅と高さのSampleModel
を作成します。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。w
- 新しいSampleModel
に適用される幅h
- 新しいSampleModel
に適用される高さSampleModel
オブジェクト。UnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
がこのColorModel
と互換性があるかどうかを判定します。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はUnsupportedOperationException
をスローするので、サブクラスはこのメソッドをオーバーライドする必要があります。sm
- 指定されたSampleModel
SampleModel
がこのColorModel
と互換性がある場合はtrue
、それ以外の場合はfalse
。UnsupportedOperationException
- このColorModel
でこのメソッドがサポートされていない場合SampleModel
public void finalize()
ColorModel
が参照されなくなったときに、このColorModel
に関連付けられたシステム・リソースを破棄します。finalize
、クラス: Object
WeakReference
, PhantomReference
public WritableRaster getAlphaRaster(WritableRaster raster)
ColorModel
のピクセル値が別々の空間バンドとして色情報およびアルファ情報を表す場合(ComponentColorModel
およびDirectColorModel
など)に、入力Raster
から抽出された、イメージのアルファ・チャネルを表すRaster
を返します。そのようなColorModel
に関連したRaster
オブジェクトがアルファ・バンドを持っている場合、このメソッドは、このアルファ・バンドがイメージ・データの最後のバンドとして格納されていると見なします。このColorModel
に関連した空間アルファ・チャネルがほかにない場合は、null
を返します。ルックアップ表にアルファを持つIndexColorModel
の場合、このメソッドはnull
を返します。これは、空間的に分離したアルファ・チャネルが存在しないためです。このメソッドは、新しいRaster
を生成します(ただしデータ配列は共有されます)。ColorModel
は抽象クラスなので、どのインスタンスもサブクラスのインスタンスになります。この抽象クラスの実装はnull
を返すので、サブクラスはこのメソッドをオーバーライドしてnull
を返す以外の動作を取得する必要があります。raster
- 指定されたRaster
Raster
から取得される、イメージのアルファ・チャネルを表すRaster
。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.Use is subject to license termsDocumentation Redistribution Policyも参照してください。