|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.image.SampleModel | +--java.awt.image.ComponentSampleModel | +--java.awt.image.BandedSampleModel
このクラスは、バンドインタリーブ化方式で格納されるイメージデータを表します。ピクセルの各サンプルは、DataBuffer のデータ要素に 1 つずつ格納されます。このクラスは ComponentSampleModel をサブクラス化しますが、ComponentSampleModel と比べて、バンドインタリーブ化方式のイメージデータにアクセスするためのより効率的な実装を提供します。通常、このクラスは、各バンドのサンプルデータを DataBuffer の別々のバンクに格納したイメージを処理する場合に使用されます。アクセス用メソッドが提供されているため、イメージデータを直接操作できます。ピクセルストライドは、同じ走査線上の同じバンドの 2 つのサンプルデータの間にあるデータ配列要素数です。走査線ストライドは、任意のサンプルと次の走査線の同じ列にある対応するサンプルの間のデータ配列要素数です。バンドオフセットは、各バンドが格納されている DataBuffer のバンクの最初のデータ配列要素からそのバンドの最初のサンプルまでのデータ配列要素数を示します。バンドは、0 から N-1 です。バンクインデックスは、データバッファのバンクとイメージデータのバンドの対応を示します。
クラス java.awt.image.ComponentSampleModel から継承したフィールド |
bandOffsets,
bankIndices,
numBands,
numBanks,
pixelStride,
scanlineStride |
クラス java.awt.image.SampleModel から継承したフィールド |
dataType,
height,
numBands,
width |
コンストラクタの概要 | |
BandedSampleModel(int dataType,
int w,
int h,
int numBands)
指定されたパラメータを使って BandedSampleModel を構築します。 |
|
BandedSampleModel(int dataType,
int w,
int h,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets)
指定されたパラメータを使って BandedSampleModel を構築します。 |
メソッドの概要 | |
SampleModel |
createCompatibleSampleModel(int w,
int h)
指定された幅と高さを持つ新しい BandedSampleModel を作成します。 |
DataBuffer |
createDataBuffer()
この BandedSampleModel に対応する DataBuffer を作成します。 |
SampleModel |
createSubsetSampleModel(int[] bands)
この BandedSampleModel のバンドのサブセットを持つ新しい BandedSampleModel を作成します。 |
Object |
getDataElements(int x,
int y,
Object obj,
DataBuffer data)
単一ピクセルのデータを、transferType 型のプリミティブ配列として返します。 |
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 |
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 配列として返します。 |
void |
setDataElements(int x,
int y,
Object obj,
DataBuffer data)
transferType 型のプリミティブ配列から、指定された DataBuffer にある単一ピクセルのデータを設定します。 |
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)
int 配列を入力として使用して、DataBuffer の (x,y) にあるピクセルの指定されたバンドのサンプルを設定します。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
指定された矩形のピクセルの指定されたバンドのサンプルを、データ配列要素ごとに 1 つのサンプルが格納されている int 配列を使用して設定します。 |
クラス java.awt.image.ComponentSampleModel から継承したメソッド |
getBandOffsets,
getBankIndices,
getNumDataElements,
getOffset,
getOffset,
getPixelStride,
getSampleSize,
getSampleSize,
getScanlineStride |
クラス 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 |
コンストラクタの詳細 |
public BandedSampleModel(int dataType, int w, int h, int numBands)
dataType
- サンプルを格納するためのデータ型w
- 記述されるイメージデータの領域の幅 (ピクセル数)h
- 記述されるイメージデータの領域の高さ (ピクセル数)numBands
- イメージデータのバンド数public BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
dataType
- サンプルを格納するためのデータ型w
- 記述されるイメージデータの領域の幅 (ピクセル数)h
- 記述されるイメージデータの領域の高さ (ピクセル数)numBands
- イメージデータのバンド数scanlineStride
- イメージデータの走査線ストライドbankIndices
- 各バンドのバンクインデックスbandOffsets
- 各バンドのバンドオフセットメソッドの詳細 |
public SampleModel createCompatibleSampleModel(int w, int h)
public SampleModel createSubsetSampleModel(int[] bands)
public DataBuffer createDataBuffer()
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、BandedSampleModel bsm1
によってストレージレイアウトが記述されている DataBuffer db1
から、BandedSampleModel bsm2
によってストレージレイアウトが記述されている DataBuffer db2
へ、1 ピクセルのデータを転送する例です。通常、この転送方法は getPixel と setPixel を使用するよりも効率的です。
BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.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)
次のコードは、BandedSampleModel bsm1
によってストレージレイアウトが記述されている DataBuffer db1
から、BandedSampleModel bsm2
によってストレージレイアウトが記述されている DataBuffer db2
へ、データを転送する例です。通常、この転送方法は getPixel と setPixel を使用するよりも効率的です。
BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドの 1 サンプル当たりのビット数が同じで、transferType も同じ場合、2 組の DataBuffer と SampleModel のペアの組の間での転送には、getDataElements と setDataElements を使用するのが適切です。
obj は、transferType 型のプリミティブ配列になります。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、あるいは obj がピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標obj
- null でない場合は、このオブジェクトにプリミティブ配列を返す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
- 入力サンプルの intdata
- イメージデータを格納する 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
- 入力サンプル配列data
- イメージデータが格納されている DataBuffer
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |