|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.image.SampleModel | +--java.awt.image.ComponentSampleModel
このクラスは、DataBuffer のデータ要素 1 つに 1 つずつピクセルを形成する各サンプルが格納されているイメージデータを表します。DataBuffer は、1 ピクセルを形成する N 個のサンプルを、N 個の別個のデータ配列要素に格納します。異なるバンドはそれぞれ、DataBuffer の別のバンクに格納されている場合があります。イメージデータを直接操作できるように、アクセス用の各メソッドが提供されています。このクラスは、各種のインタリーブをサポートできます。たとえば、バンドインタリーブ、走査線インタリーブ、およびピクセルインタリーブです。ピクセルストライドは、同じ走査線の同じバンドに対する 2 つのサンプル間の、データ配列要素数です。走査線ストライドは、任意のサンプルと、それと対応する、次の走査線の同じ列にあるサンプル間のデータ配列要素数です。バンドのオフセットは、各バンドを格納している DataBuffer のバンクにある最初のデータ配列要素から、バンドの最初のサンプルまでにある、データ配列要素数を表します。バンド数は、0 から N-1 までです。このクラスは、8 ビット、16 ビット、または 32 ビットで格納できる積分値を各サンプルに持つイメージデータを表すことができます。このとき、指定された ComponentSampleModel のすべてのサンプルも、同じ精度で格納されます。すべてのストライド、およびオフセットは、負でない数値でなければなりません。
PixelInterleavedSampleModel
,
BandedSampleModel
フィールドの概要 | |
protected int[] |
bandOffsets
データ配列要素にあるすべてのバンドのオフセットです。 |
protected int[] |
bankIndices
イメージデータのバンドを格納する各バンクのインデックスです。 |
protected int |
numBands
|
protected int |
numBanks
|
protected int |
pixelStride
この ComponentSampleModel で記述されるイメージデータ領域 (データ配列要素) のピクセルストライドです。 |
protected int |
scanlineStride
この ComponentSampleModel で記述されるイメージデータ領域 (データ配列要素) の走査線ストライドです。 |
クラス java.awt.image.SampleModel から継承したフィールド |
dataType,
height,
numBands,
width |
コンストラクタの概要 | |
ComponentSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bandOffsets)
指定されたパラメータで、ComponentSampleModel を構築します。 |
|
ComponentSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets)
指定されたパラメータで、ComponentSampleModel を構築します。 |
メソッドの概要 | |
SampleModel |
createCompatibleSampleModel(int w,
int h)
指定された幅および高さで、新しい ComponentSampleModel を構築します。 |
DataBuffer |
createDataBuffer()
この ComponentSampleModel と対応する DataBuffer を作成します。 |
SampleModel |
createSubsetSampleModel(int[] bands)
この ComponentSampleModel のサブセットを持つ、新しい ComponentSampleModel を構築します。 |
int[] |
getBandOffsets()
すべてのバンドについて、バンクのオフセットを返します。 |
int[] |
getBankIndices()
すべてのバンドについて、バンクのインデックスを返します。 |
Object |
getDataElements(int x,
int y,
Object obj,
DataBuffer data)
1 ピクセルのデータを transferType 型のプリミティブ配列として返します。 |
int |
getNumDataElements()
getDataElements メソッドおよび setDataElements メソッドでピクセルを転送するのに必要なデータ要素数を返します。 |
int |
getOffset(int x,
int y)
ピクセル (x,y) の最初のバンドのオフセットを取得します。 |
int |
getOffset(int x,
int y,
int b)
ピクセル (x,y) のバンド b のオフセットを取得します。 |
int[] |
getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
指定されたピクセルのすべてのサンプルを int 配列として返します。 |
int[] |
getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
指定されたピクセル矩形に使うサンプルを int 配列としてすべて返します。 |
int |
getPixelStride()
この ComponentSampleModel のピクセルストライドを返します。 |
int |
getSample(int x,
int y,
int b,
DataBuffer data)
座標 (x,y) にあるピクセルの指定されたバンドにあるサンプルを int として返します。 |
int[] |
getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
指定されたピクセル矩形に使うサンプルを int 配列として返します。 |
int[] |
getSampleSize()
すべてのバンドについて、サンプル当たりのビット数を返します。 |
int |
getSampleSize(int band)
指定されたバンドについて、サンプル当たりのビット数を返します。 |
int |
getScanlineStride()
この ComponentSampleModel の走査線ストライドを返します。 |
void |
setDataElements(int x,
int y,
Object obj,
DataBuffer data)
指定された DataBuffer にある 1 ピクセルのデータを、transferType 型のプリミティブ配列から設定します。 |
void |
setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
入力用サンプルの int 配列を使って、DataBuffer にピクセルを設定します。 |
void |
setPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
配列要素ごとに 1 個のサンプルを格納している int 配列から、複数のピクセルからなる矩形に使うサンプルをすべて設定します。 |
void |
setSample(int x,
int y,
int b,
int s,
DataBuffer data)
(x,y) にあるピクセルのために指定されたバンドにあるサンプルを、int を入力に使って DataBuffer に設定します。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
データ配列要素当たり 1 個のサンプルを格納している int 配列から、指定されたピクセル矩形の、指定されたバンドにサンプルを設定します。 |
クラス java.awt.image.SampleModel から継承したメソッド |
getDataElements,
getDataType,
getHeight,
getNumBands,
getPixel,
getPixel,
getPixels,
getPixels,
getSampleDouble,
getSampleFloat,
getSamples,
getSamples,
getTransferType,
getWidth,
setDataElements,
setPixel,
setPixel,
setPixels,
setPixels,
setSample,
setSample,
setSamples,
setSamples |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
フィールドの詳細 |
protected int[] bandOffsets
protected int[] bankIndices
protected int numBands
protected int numBanks
protected int scanlineStride
protected int pixelStride
コンストラクタの詳細 |
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
dataType
- サンプルを格納するためのデータ型w
- 記述されたイメージデータの領域の幅 (ピクセル単位)h
- 記述されたイメージデータの領域の高さ (ピクセル単位)pixelStride
- 記述されたイメージデータの領域のピクセルストライドscanlineStride
- 記述されたイメージデータの領域の走査線ストライドbandOffsets
- すべてのバンドのオフセットpublic ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)
dataType
- 格納するサンプルのデータ型w
- 記述されたイメージデータの領域の幅 (ピクセル単位)h
- 記述されたイメージデータの領域の高さ (ピクセル単位)pixelStride
- 記述されたイメージデータの領域のピクセルストライドscanlineStride
- 記述されたイメージデータの領域の走査線ストライドbandIndices
- すべてのバンドのバンクインデックスbandOffsets
- すべてのバンドのオフセットメソッドの詳細 |
public SampleModel createCompatibleSampleModel(int w, int h)
public SampleModel createSubsetSampleModel(int[] bands)
public DataBuffer createDataBuffer()
public int getOffset(int x, int y)
data
から、ComponentSampleModel csm
を使って次のようにして取得できます。
data.getElem(csm.getOffset(x, y));
public int getOffset(int x, int y, int b)
data
から、ComponentSampleModel csm
を使って次のようにして取得できます。
data.getElem(csm.getOffset(x, y, b));
public final int[] getSampleSize()
public final int getSampleSize(int band)
public final int[] getBankIndices()
public final int[] getBandOffsets()
public final int getScanlineStride()
public final int getPixelStride()
public final int getNumDataElements()
SampleModel.getNumDataElements()
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、ComponentSampleModel csm1
によってストレージレイアウトが記述されている DataBuffer db1
から、ComponentSampleModel csm2
によってストレージレイアウトが記述されている DataBuffer db2
へ、1 ピクセルのデータを、転送する例です。この転送方法は、getPixel と setPixel を使う方法よりも効率的です。
ComponentSampleModel csm1, csm2; DataBufferInt db1, db2; csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドの 1 サンプル当たりのビット数が同じで、transferType も同じである場合、2 組の DataBuffer および SampleModel のペア間で転送を行うには、getDataElements および setDataElements を使うのが適切です。
obj が null でない場合、obj は transferType 型のプリミティブ配列になります。そうでない場合は ClassCastException がスローされます。座標が境界内にない場合、あるいは obj が null でなく、ピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
x
- ピクセルの位置の X 座標y
- ピクセルの位置の Y 座標obj
- null でない場合は、プリミティブ配列にピクセルデータを返すdata
- イメージデータが格納されている DataBufferpublic int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
x
- ピクセルの位置の X 座標y
- ピクセルの位置の Y 座標iArray
- null でない場合は、この配列にサンプルを返すdata
- イメージデータが格納されている DataBufferpublic int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
x
- 左上隅にあるピクセルの位置の X 座標y
- 左上隅にあるピクセルの位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- null でない場合は、この配列にサンプルを返すdata
- イメージデータが格納されている DataBufferpublic int getSample(int x, int y, int b, DataBuffer data)
x
- ピクセルの位置の X 座標y
- ピクセルの位置の Y 座標b
- 返されるバンドdata
- イメージデータが格納されている DataBufferpublic int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
x
- 左上隅にあるピクセルの位置の X 座標y
- 左上隅にあるピクセルの位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 返されるバンドiArray
- null でない場合は、この配列にサンプルを返すdata
- イメージデータが格納されている DataBufferpublic void setDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、ComponentSampleModel csm1
によってストレージレイアウトが記述されている DataBuffer db1
から、ComponentSampleModel csm2
によって、ストレージレイアウトが記述されている DataBuffer db2
へ 、1 ピクセルのデータを転送する例です。この転送方法は、getPixel と setPixel を使う方法よりも効率的です。
ComponentSampleModel csm1, csm2; DataBufferInt db1, db2; csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドの 1 サンプル当たりのビット数が同じで、transferType も同じである場合、2 組の DataBuffer および SampleModel のペア間で転送を行うには、getDataElements および setDataElements を使うのが適切です。
obj は transferType の型のプリミティブ配列になります。そうでない場合は ClassCastException がスローされることがあります。座標が境界内にない場合、あるいは obj がピクセルデータを格納するために十分なサイズでない場合には、ArrayIndexOutOfBoundsException がスローされることがあります。
x
- ピクセルの位置の X 座標y
- ピクセルの位置の Y 座標obj
- ピクセルデータが格納されているプリミティブ配列data
- イメージデータが格納されている DataBufferpublic void setPixel(int x, int y, int[] iArray, DataBuffer data)
x
- ピクセルの位置の X 座標y
- ピクセルの位置の Y 座標iArray
- int 配列内の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
x
- 左上隅にあるピクセルの位置の X 座標y
- 左上隅にあるピクセルの位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- int 配列内の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSample(int x, int y, int b, int s, DataBuffer data)
x
- ピクセルの位置の X 座標y
- ピクセルの位置の Y 座標b
- 設定対象のバンドs
- 入力サンプル (int)data
- イメージデータが格納されている DataBufferpublic void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
x
- 左上隅にあるピクセルの位置の X 座標y
- 左上隅にあるピクセルの位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 設定対象のバンドiArray
- int 配列内の入力サンプルdata
- イメージデータが格納されている DataBuffer
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |