Java プラットフォーム 1.2

java.awt.image
クラス IndexColorModel

java.lang.Object
  |
  +--java.awt.image.ColorModel
        |
        +--java.awt.image.IndexColorModel

public class IndexColorModel
extends ColorModel

デフォルトの sRGB ColorSpace の固定カラーマップに対するインデックスである、単一のサンプルからなるピクセル値を扱う ColorModel クラスです。カラーマップは、赤、緑、青の色成分、および各インデックスに対応する任意のアルファ成分を指定します。成分はすべて、カラーマップ内の 8 ビットの符号なし整数値として表現されます。アルファが存在しない場合は、各エントリで不透明なアルファ成分 (アルファ = 1.0) が指定されたと見なされます。オプションの透明ピクセルの値を指定して、そのピクセル値に記録されたアルファ成分がどれであっても、どれが完全に透明なピクセルかを示すことができます。IndexColorModels のアルファ値は、あらかじめ乗算されることはありません。このカラーモデルは X11 の PseudoColor ビジュアルに類似しています。

ピクセル値で表現されるインデックスは、このクラスのメソッドに渡されるピクセル表現の最下位の n ビットに格納されます。ただし、n は特定の IndexColorModel オブジェクトのコンストラクタに指定されるピクセルサイズです。ピクセル表現の上位ビットはゼロと見なされます。transferType 型のプリミティブ配列のピクセル表現を使うメソッドでは、配列長は常に 1 です。サポートされる転送タイプは、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、および DataBuffer.TYPE_INT です。このクラスで使うピクセル値は常に単一の int として表現できるので、単一の int ピクセル表現はこのクラスのすべてのオブジェクトで有効です。このため、この表現を使うメソッドは、無効なピクセル値のために IllegalArgumentException をスローすることはありません。

このクラスのメソッドの多くは final です。その理由は、下位のネイティブなグラフィックスのコードがこのクラスの設計と操作に関しての前提となり、これらの前提がこのクラスで final になっているメソッドの実装に反映されているからです。このクラスをサブクラス化することはできますが、final なメソッドの動作をオーバーライドしたり、変更することはできません。

関連項目:
ColorModel, ColorSpace, DataBuffer

クラス java.awt.image.ColorModel から継承したフィールド
pixel_bits, transferType
 
コンストラクタの概要
IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b)
          指定された赤、緑、青の色成分の配列から IndexColorModel を構築します。
IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b, byte[] a)
          指定された赤、緑、青、アルファの色成分の配列から IndexColorModel を構築します。
IndexColorModel(int bits, int size, byte[] r, byte[] g, byte[] b, int trans)
          指定された赤、緑、青の色成分の配列から IndexColorModel を構築します。
IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasalpha)
          インタリーブ化形式で格納されている赤、緑、青の色成分、およびオプションのアルファ成分からなる 1 つの配列から IndexColorModel を構築します。
IndexColorModel(int bits, int size, byte[] cmap, int start, boolean hasalpha, int trans)
          インタリーブ化形式で格納されている赤、緑、青の色成分、およびオプションのアルファ成分からなる 1 つの配列から IndexColorModel を構築します。
IndexColorModel(int bits, int size, int[] cmap, int start, boolean hasalpha, int trans, int transferType)
          int の配列から IndexColorModel を構築します。
 
メソッドの概要
 BufferedImage convertToIntDiscrete(Raster raster, boolean forceARGB)
          ソース Raster のインデックスを展開して計算したピクセルデータ付きの Raster を持つ TYPE_INT_ARGB または TYPE_INT_RGB の新しい BufferedImage を、この ColorModel の色成分とアルファ成分の配列を使って返します。
 SampleModel createCompatibleSampleModel(int w, int h)
          この ColorModel と互換性のあるデータレイアウトを持つ SampleModel を、指定された幅と高さで作成します。
 WritableRaster createCompatibleWritableRaster(int w, int h)
          この ColorModel と互換性のあるデータレイアウト (SampleModel) を持つ WritableRaster を、指定された幅と高さで作成します。
 void finalize()
           
 int getAlpha(int pixel)
          指定されたピクセルのアルファ成分を、0 〜 255 の範囲でスケーリングして返します。
 void getAlphas(byte[] a)
          透明のアルファ成分の配列を指定された配列にコピーします。
 int getBlue(int pixel)
          指定されたピクセルの青の色成分を、デフォルトの RGB ColorSpace、つまり sRGB の 0 〜 255 の範囲でスケーリングして返します。
 void getBlues(byte[] b)
          青の色成分の配列を指定された配列にコピーします。
 int[] getComponents(int pixel, int[] components, int offset)
          この ColorModel の指定されたピクセルについて、非正規化形式の色成分とアルファ成分の配列を返します。
 int[] getComponents(Object pixel, int[] components, int offset)
          この ColorModel の指定されたピクセルについて、非正規化形式の色成分とアルファ成分の配列を返します。
 int[] getComponentSize()
          色成分やアルファ成分について 1 成分当たりのビット数の配列を返します。
 int getDataElement(int[] components, int offset)
          指定された非正規化形式の色成分とアルファ成分の配列について、この ColorModel の int として表現されるピクセル値を返します。
 Object getDataElements(int[] components, int offset, Object pixel)
          指定された非正規化形式の色成分とアルファ成分の配列について、この ColorModel のピクセルのデータ要素配列表現を返します。
 Object getDataElements(int rgb, Object pixel)
          指定されたデフォルトの RGB カラーモデルの整数ピクセル表現について、この ColorModel のピクセルのデータ要素配列表現を返します。
 int getGreen(int pixel)
          指定されたピクセルの緑の色成分を、デフォルトの RGB ColorSpace、つまり sRGB の 0 〜 255 の範囲でスケーリングして返します。
 void getGreens(byte[] g)
          緑の色成分の配列を指定の配列にコピーします。
 int getMapSize()
          この IndexColorModel 内の色成分とアルファ成分の配列のサイズを返します。
 int getRed(int pixel)
          指定されたピクセルの赤の色成分を、デフォルトの RGB ColorSpace、つまり sRGB の 0 〜 255 の範囲でスケーリングして返します。
 void getReds(byte[] r)
          赤の色成分の配列を指定の配列にコピーします。
 int getRGB(int pixel)
          ピクセルの色成分とアルファ成分を、デフォルトの RGB カラーモデル形式で返します。
 void getRGBs(int[] rgb)
          各インデックスのデータを色成分とアルファ成分の配列からデフォルトの RGB ColorModel 形式の int に変換し、その結果の 32 ビット ARGB 値を指定された配列にコピーします。
 int getTransparency()
          透明度を返します。
 int getTransparentPixel()
          この IndexColorModel 内の透明ピクセルのインデックスを返します。
 boolean isCompatibleRaster(Raster raster)
          ラスタがこの ColorModel と互換性がある場合は true、そうでない場合は false を返します。
 boolean isCompatibleSampleModel(SampleModel sm)
          SampleModel がこの ColorModel と互換性があるかどうかを判定します。
 String toString()
          このオブジェクトの内容を印刷します。
 
クラス java.awt.image.ColorModel から継承したメソッド
coerceData, equals, getAlpha, getAlphaRaster, getBlue, getColorSpace, getComponentSize, getGreen, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRed, getRGB, getRGBdefault, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied
 
クラス java.lang.Object から継承したメソッド
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

IndexColorModel

public IndexColorModel(int bits,
                       int size,
                       byte[] r,
                       byte[] g,
                       byte[] b)
指定された赤、緑、青の色成分の配列から IndexColorModel を構築します。このカラーモデルによって記述されるピクセルはすべて、非正規化された 255 (1.0 正規化) のアルファ成分を持ちます。つまり、完全に不透明です。色成分を指定するすべての配列は、少なくとも指定のエントリ数を持たなければなりません。ColorSpace はデフォルトの sRGB 領域になります。透明度の値は Transparency.OPAQUE になります。転送タイプは、単一のピクセルを格納できる DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT の最小のものになります。
パラメータ:
bits - 1ピクセルあたりのビット数
size - 色成分の配列の大きさ
r - 赤色成分の配列
g - 緑色成分の配列
b - 青色成分の配列

IndexColorModel

public IndexColorModel(int bits,
                       int size,
                       byte[] r,
                       byte[] g,
                       byte[] b,
                       int trans)
指定された赤、緑、青の色成分の配列から IndexColorModel を構築します。このカラーモデルによって記述されるピクセルはすべて、指定された透明ピクセルを除いて、非正規化された 255 (1.0 正規化) のアルファ成分を持ちます。つまり、完全に不透明です。色成分を指定するすべての配列は、少なくとも指定のエントリ数を持たなければなりません。ColorSpace はデフォルトの sRGB 領域になります。透明度の値は Transparency.BITMASK になります。転送タイプは、単一のピクセルを格納できる DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT の最小のものになります。
パラメータ:
bits - 1 ピクセルあたりのビット数
size - 色成分の配列の大きさ
r - 赤色成分の配列
g - 緑色成分の配列
b - 青色成分の配列
trans - 透明ピクセルのインデックス

IndexColorModel

public IndexColorModel(int bits,
                       int size,
                       byte[] r,
                       byte[] g,
                       byte[] b,
                       byte[] a)
指定された赤、緑、青、アルファの色成分の配列から IndexColorModel を構築します。成分を指定するすべての配列は、少なくとも、指定された数のエントリを持たなければなりません。ColorSpace はデフォルトの sRGB 領域になります。透明度の値は Transparency.TRANSLUCENT になります。転送タイプは、単一のピクセルを格納できる DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT の最小のものになります。
パラメータ:
bits - 1 ピクセルあたりのビット数
size - 色成分の配列の大きさ
r - 赤色成分の配列
g - 緑色成分の配列
b - 青色成分の配列
a - アルファ値成分の配列

IndexColorModel

public IndexColorModel(int bits,
                       int size,
                       byte[] cmap,
                       int start,
                       boolean hasalpha)
インタリーブ化形式で格納されている赤、緑、青の色成分、およびオプションのアルファ成分からなる 1 つの配列から IndexColorModel を構築します。この配列の値は、指定されたサイズの成分配列をすべて満たすのに充分な数でなければなりません。ColorSpace はデフォルトの sRGB 領域になります。透明度の値は、hasAlpha が true の場合には Transparency.TRANSLUCENT、そうでない場合には Transparency.OPAQUE になります。転送タイプは、単一のピクセルを格納できる DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT の最小のものになります。
パラメータ:
bits - 1 ピクセルあたりのビット数
size - 色成分の配列の大きさ
cmap - 色成分の配列
start - 最初の色成分の開始座標
hasalpha - cmap 配列でのアルファ値の有無を示す

IndexColorModel

public IndexColorModel(int bits,
                       int size,
                       byte[] cmap,
                       int start,
                       boolean hasalpha,
                       int trans)
インタリーブ化形式で格納されている赤、緑、青の色成分、およびオプションのアルファ成分からなる 1 つの配列から IndexColorModel を構築します。指定の透明インデックスは、どのアルファ値が指定してあっても、まったく透明であると見なされるピクセルを表現します。この配列の値は、指定されたサイズの成分配列をすべて満たすのに充分な数でなければなりません。ColorSpace はデフォルトの sRGB 領域になります。透明度の値は、hasAlpha が true の場合には Transparency.TRANSLUCENT になります。そうでない場合、trans がカラーマップに対する有効なインデックス (0 〜 size - 1 の範囲) のときは Transparency.BITMASK、trans が有効なインデックスでないときは Transparency.OPAQUE になります。転送タイプは、単一のピクセルを格納できる DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT の最小のものになります。
パラメータ:
bits - 1 ピクセルあたりのビット数
size - 色成分の配列の大きさ
cmap - 色成分の配列
start - 最初の色成分の開始座標
hasalpha - cmap 配列でのアルファ値の有無を示す
trans - 透明ピクセルのインデックス

IndexColorModel

public IndexColorModel(int bits,
                       int size,
                       int[] cmap,
                       int start,
                       boolean hasalpha,
                       int trans,
                       int transferType)
int の配列から IndexColorModel を構築します。ただし、各 int は、デフォルトの RGB カラーモデル形式の赤、緑、青の色成分、および任意のアルファ成分からなります。指定された透明インデックスは、どのアルファ値が指定してあっても、完全に透明であると見なされるピクセルを表現します。この配列の値は、指定されたサイズの成分配列をすべて満たすのに充分な数でなければなりません。ColorSpace はデフォルトの sRGB 領域になります。透明度の値は、hasAlpha が true の場合には Transparency.TRANSLUCENT になります。そうでない場合、trans がカラーマップの有効なインデックス (0 〜 size - 1 の範囲) のときは Transparency.BITMASK、trans が有効なインデックスでないときは Transparency.OPAQUE になります。転送タイプは、単一のピクセルを格納できる DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT の最小のものになります。
パラメータ:
bits - 1 ピクセルあたりのビット数
size - 色成分の配列の大きさ
cmap - 色成分の配列
start - 最初の色成分の開始オフセット
hasalpha - cmap 配列でのアルファ値の有無を示す
trans - 完全な透明ピクセルのインデックス
メソッドの詳細

getTransparency

public int getTransparency()
透明度を返します。OPAQUE、BITMASK、または TRANSLUCENT のどれかを返します。
オーバーライド:
クラス ColorModel 内の getTransparency
関連項目:
Transparency.OPAQUE, Transparency.BITMASK, Transparency.TRANSLUCENT

getComponentSize

public int[] getComponentSize()
色成分やアルファ成分について 1 成分当たりのビット数の配列を返します。配列には、赤、緑、青の色成分、およびあればアルファ成分の順序で、色成分が格納されます。
オーバーライド:
クラス ColorModel 内の getComponentSize

getMapSize

public final int getMapSize()
この IndexColorModel 内の色成分とアルファ成分の配列のサイズを返します。

getTransparentPixel

public final int getTransparentPixel()
この IndexColorModel 内の透明ピクセルのインデックスを返します。ただし、透明ピクセルがない場合は -1 を返します。

getReds

public final void getReds(byte[] r)
赤の色成分の配列を指定の配列にコピーします。getMapSize() で指定された配列の初期エントリだけが書き込まれます。

getGreens

public final void getGreens(byte[] g)
緑の色成分の配列を指定の配列にコピーします。getMapSize() で指定された配列の初期エントリだけが書き込まれます。

getBlues

public final void getBlues(byte[] b)
青の色成分の配列を指定された配列にコピーします。getMapSize() で指定された配列の初期エントリだけが書き込まれます。

getAlphas

public final void getAlphas(byte[] a)
透明のアルファ成分の配列を指定された配列にコピーします。getMapSize() で指定された配列の初期エントリだけが書き込まれます。

getRGBs

public final void getRGBs(int[] rgb)
各インデックスのデータを色成分とアルファ成分の配列からデフォルトの RGB ColorModel 形式の int に変換し、その結果の 32 ビット ARGB 値を指定された配列にコピーします。getMapSize() で指定された配列の初期エントリだけが書き込まれます。

getRed

public final int getRed(int pixel)
指定されたピクセルの赤の色成分を、デフォルトの RGB ColorSpace、つまり sRGB の 0 〜 255 の範囲でスケーリングして返します。ピクセル値は int として指定されます。戻り値は、あらかじめ乗算されていない値になります。
オーバーライド:
クラス ColorModel 内の getRed

getGreen

public final int getGreen(int pixel)
指定されたピクセルの緑の色成分を、デフォルトの RGB ColorSpace、つまり sRGB の 0 〜 255 の範囲でスケーリングして返します。ピクセル値は int として指定されます。戻り値は、あらかじめ乗算されていない値になります。
オーバーライド:
クラス ColorModel 内の getGreen

getBlue

public final int getBlue(int pixel)
指定されたピクセルの青の色成分を、デフォルトの RGB ColorSpace、つまり sRGB の 0 〜 255 の範囲でスケーリングして返します。ピクセル値は int として指定されます。戻り値は、あらかじめ乗算されていない値になります。
オーバーライド:
クラス ColorModel 内の getBlue

getAlpha

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

getRGB

public final int getRGB(int pixel)
ピクセルの色成分とアルファ成分を、デフォルトの RGB カラーモデル形式で返します。ピクセル値は int として指定されます。戻り値は、あらかじめ乗算されていない形式になります。
オーバーライド:
クラス ColorModel 内の getRGB
関連項目:
ColorModel.getRGBdefault()

getDataElements

public Object getDataElements(int rgb,
                              Object pixel)
指定されたデフォルトの RGB カラーモデルの整数ピクセル表現について、この ColorModel のピクセルのデータ要素配列表現を返します。これにより、この配列は WritableRaster オブジェクトの setDataElements メソッドに渡されます。pixel 変数が null の場合は、新しい配列が割り当てられます。pixel 変数が null でない場合は、transferType 型のプリミティブ配列である必要があります。そうでない場合は、ClassCastException がスローされます。pixel がこのColorModel のピクセル値を格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。ピクセル配列が返されます。
オーバーライド:
クラス ColorModel 内の getDataElements
関連項目:
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 の指定されたピクセルについて、非正規化形式の色成分とアルファ成分の配列を返します。ピクセル値は int として指定されます。成分配列が null の場合、新しい配列が割り当てられます。成分配列が返されます。色成分とアルファ成分は、offset から開始される成分配列に格納されます。これは、配列がこのメソッドで割り当てられても変わりません。成分配列が null でなく、色成分とアルファ成分 (offset から始まる) のすべてを格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。
オーバーライド:
クラス ColorModel 内の getComponents

getComponents

public int[] getComponents(Object pixel,
                           int[] components,
                           int offset)
この ColorModel の指定されたピクセルについて、非正規化形式の色成分とアルファ成分の配列を返します。ピクセル値は、オブジェクト参照として渡される transferType 型のデータ要素の配列によって指定されます。pixel が transferType 型のプリミティブ配列でない場合は、ClassCastException がスローされます。pixel がこの ColorModel のピクセル値を格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。成分配列が null の場合は、新しい配列が割り当てられます。その成分配列が返されます。色成分とアルファ成分は、offset から始まる成分配列に格納されます。これは、配列がこのメソッドで割り当てられても変わりません。成分配列が null でなく、色成分とアルファ成分 (offset から始まる) のすべてを格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。
オーバーライド:
クラス ColorModel 内の getComponents

getDataElement

public int getDataElement(int[] components,
                          int offset)
指定された非正規化形式の色成分とアルファ成分の配列について、この ColorModel の int として表現されるピクセル値を返します。成分配列が色成分とアルファ成分 (offset から始まる) のすべてを格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。
オーバーライド:
クラス ColorModel 内の getDataElement

getDataElements

public Object getDataElements(int[] components,
                              int offset,
                              Object pixel)
指定された非正規化形式の色成分とアルファ成分の配列について、この ColorModel のピクセルのデータ要素配列表現を返します。これにより、この配列は WritableRaster オブジェクトの setDataElements メソッドに渡されます。成分配列が色成分とアルファ成分 (offset から始まる) のすべてを格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。pixel 変数が null の場合は、新しい配列が割り当てられます。pixel 変数が null でない場合は、transferType 型のプリミティブ配列である必要があります。そうでない場合は、ClassCastException がスローされます。pixel がこのColorModel のピクセル値を格納できるほど大きくない場合は、ArrayIndexOutOfBoundsException がスローされます。
オーバーライド:
クラス ColorModel 内の getDataElements
関連項目:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int w,
                                                     int h)
この ColorModel と互換性のあるデータレイアウト (SampleModel) を持つ WritableRaster を、指定された幅と高さで作成します。
例外:
UnsupportedOperationException - この ColorModel のピクセルのビット数が 16 より大きい場合
オーバーライド:
クラス ColorModel 内の createCompatibleWritableRaster
関連項目:
WritableRaster, SampleModel

isCompatibleRaster

public boolean isCompatibleRaster(Raster raster)
ラスタがこの ColorModel と互換性がある場合は true、そうでない場合は false を返します。
オーバーライド:
クラス ColorModel 内の isCompatibleRaster

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)
この ColorModel と互換性のあるデータレイアウトを持つ SampleModel を、指定された幅と高さで作成します。
オーバーライド:
クラス ColorModel 内の createCompatibleSampleModel
関連項目:
SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel がこの ColorModel と互換性があるかどうかを判定します。
オーバーライド:
クラス ColorModel 内の isCompatibleSampleModel
関連項目:
SampleModel

convertToIntDiscrete

public BufferedImage convertToIntDiscrete(Raster raster,
                                          boolean forceARGB)
ソース Raster のインデックスを展開して計算したピクセルデータ付きの Raster を持つ TYPE_INT_ARGB または TYPE_INT_RGB の新しい BufferedImage を、この ColorModel の色成分とアルファ成分の配列を使って返します。forceARGB が true の場合、この ColorModel がアルファ成分配列または透明ピクセルのどちらを持つかにかかわらず、TYPE_INT_ARGB イメージが返されます。

finalize

public void finalize()
オーバーライド:
クラス ColorModel 内の finalize

toString

public String toString()
このオブジェクトの内容を印刷します。
オーバーライド:
クラス ColorModel 内の toString

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.