java.lang.Object
java.awt.image.SampleModel
java.awt.image.ComponentSampleModel
java.awt.image.BandedSampleModel
public final class BandedSampleModel extends ComponentSampleModel
このクラスは、バンド・インタリーブ化方式で格納されるイメージ・データを表します。ピクセルの各サンプルは、DataBufferのデータ要素に1つずつ格納されます。 このクラスは、ComponentSampleModelをサブクラス化しますが、バンド・インタリーブ化されたイメージ・データへのアクセスに、ComponentSampleModelを使うよりも効率的な実装を提供します。 通常、このクラスは、各バンドのサンプル・データをDataBufferの別々のバンクに格納したイメージを処理する場合に使用されます。 イメージ・データを直接処理できるように、アクセス用メソッドが提供されています。 ピクセル・ストライドは、同じ走査線上の同じバンドにある2つのサンプルの間にあるデータ配列要素数です。 BandedSampleModelのピクセル・ストライドはその1つです。 走査線ストライドは、指定されたサンプルと次の走査線の同じ列の対応するサンプルとの間のデータ配列要素の数です。 バンド・オフセットは、各バンドが格納されているDataBufferのバンクにある最初のデータ配列要素からそのバンドの最初のサンプルまでのデータ配列要素数を示します。 バンドには0からN-1までの番号が付けられています。 バンク・インデックスは、データ・バッファのバンクと、イメージ・データのバンドとの対応を示します。 このクラスは、
TYPE_BYTE、TYPE_USHORT、TYPE_SHORT、TYPE_INT、TYPE_FLOATおよびTYPE_DOUBLEの各データ型をサポートします。 - 
フィールドのサマリークラス java.awt.image.ComponentSampleModelで宣言されたフィールドbandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStrideクラス java.awt.image.SampleModelで宣言されたフィールドdataType, height, 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を構築します。
- 
メソッドのサマリー修飾子と型メソッド説明createCompatibleSampleModel(int w, int h) 指定された幅と高さを持つ新しいBandedSampleModelを作成します。このBandedSampleModelに対応するDataBufferを作成します。DataBufferのデータ型、バンク数、およびサイズは、このBandedSampleModelと一致します。createSubsetSampleModel(int[] bands) このBandedSampleModelのバンドのサブセットを持つ新しいBandedSampleModelを作成します。getDataElements(int x, int y, Object obj, DataBuffer data) transferType型のプリミティブ配列内の1つのピクセルのデータを返します。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配列として返します。サンプルは、データ配列要素ごとに1つです。intgetSample(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。doublegetSampleDouble(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの指定されたバンド内のサンプルをdoubleとして返します。floatgetSampleFloat(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの指定されたバンド内のサンプルをfloatとして返します。int[]getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 指定されたピクセル矩形に使う、指定されたバンド内のサンプルをint配列として返します。データ配列要素にサンプル1個が対応します。voidsetDataElements(int x, int y, Object obj, DataBuffer data) 指定されたDataBufferの1つのピクセルのデータを、TransferType型のプリミティブ配列から設定します。voidsetPixel(int x, int y, int[] iArray, DataBuffer data) サンプルのint配列を入力として使ってDataBuffer内のピクセルを設定します。voidsetPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 矩形のピクセルのサンプルすべてを、配列要素ごとに1つのサンプルが格納されているint配列から設定します。voidsetSample(int x, int y, int b, double s, DataBuffer data) doubleを入力として使用し、DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。voidsetSample(int x, int y, int b, float s, DataBuffer data) floatを入力として使用し、DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。voidsetSample(int x, int y, int b, int s, DataBuffer data) intを入力とし、DataBufferの(x,y)に位置するピクセルの、指定されたバンドのサンプルを設定します。voidsetSamples(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, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples
- 
コンストラクタの詳細- 
BandedSampleModelpublic BandedSampleModel(int dataType, int w, int h, int numBands) 指定されたパラメータを使ってBandedSampleModelを構築します。 ピクセル・ストライドは、1データ要素になります。 走査線ストライドは、幅と同じになります。 各バンドは個別のバンクに格納され、すべてのバンド・オフセットは0になります。- パラメータ:
- dataType- サンプルの格納のためのデータ型。
- w- 記述されたイメージ・データの領域の幅(単位はピクセル)。
- h- 記述されたイメージ・データの領域の高さ(単位はピクセル)。
- numBands- イメージ・データのバンド数。
- 例外:
- IllegalArgumentException-- wと- hの両方が0以下の場合
- IllegalArgumentException-- wと- hの積が- Integer.MAX_VALUEより大きい場合
- IllegalArgumentException-- numBandsが0より大きい場合
- IllegalArgumentException-- dataTypeがこのサンプル・モデルでサポートされるデータ型でない場合。
 
- 
BandedSampleModelpublic BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets) 指定されたパラメータを使ってBandedSampleModelを構築します。 バンド数は、bandOffsets配列とbankIndices配列の長さ(これら2つの配列は同じ長さであることが必要)から推定されます。 ピクセル・ストライドは、1データ要素になります。- パラメータ:
- dataType- サンプルの格納のためのデータ型。
- w- 記述されたイメージ・データの領域の幅(単位はピクセル)。
- h- 記述されたイメージ・データの領域の高さ(単位はピクセル)。
- scanlineStride- イメージ・データの走査線ストライド。
- bankIndices- 各バンドのバンク・インデックス。
- bandOffsets- 各バンドのバンド・オフセット。
- 例外:
- IllegalArgumentException-- wと- hの両方が0以下の場合
- IllegalArgumentException-- wと- hの積が- Integer.MAX_VALUEより大きい場合
- IllegalArgumentException-- scanlineStrideが0より小さい場合
- NullPointerException-- bankIndicesが- nullの場合
- NullPointerException-- bandOffsetsが- nullの場合
- IllegalArgumentException-- bandOffsets.lengthが0の場合
- IllegalArgumentException-- bankIndicesの長さが- bandOffsetsの長さと等しくない場合
- IllegalArgumentException-- bandIndicesのバンク・インデックスのいずれかが0より小さい場合
- IllegalArgumentException-- dataTypeがこのサンプル・モデルでサポートされるデータ型でない場合
 
 
- 
- 
メソッドの詳細- 
createCompatibleSampleModelpublic SampleModel createCompatibleSampleModel(int w, int h) 指定された幅と高さを持つ新しいBandedSampleModelを作成します。 新しいBandedSampleModelのバンド数、ストレージ・データ型、およびバンク・インデックスは、このBandedSampleModelと同じになります。 バンド・オフセットは、バンドのオフセットがw*pixelStrideになり、すべてのバンド・オフセットの最小値が0になるように圧縮されます。- オーバーライド:
- createCompatibleSampleModel、クラス:- ComponentSampleModel
- パラメータ:
- w- 結果として得られる- BandedSampleModelの幅
- h- 結果として得られる- BandedSampleModelの高さ
- 戻り値:
- 指定された幅と高さを持つ新しいBandedSampleModel。
- 例外:
- IllegalArgumentException-- wまたは- hが- Integer.MAX_VALUEまたは- Integer.MIN_VALUEと等しい場合
- IllegalArgumentException-- dataTypeがサポートされているデータ型でない場合
 
- 
createSubsetSampleModelpublic SampleModel createSubsetSampleModel(int[] bands) このBandedSampleModelのバンドのサブセットを持つ新しいBandedSampleModelを作成します。 新しいBandedSampleModelは、既存のBandedSampleModelと使用できるDataBufferであればどのDataBufferとも組み合わせて使用できます。 新しいBandedSampleModelとDataBufferの組み合わせは、元のBandedSampleModelとDataBufferの組み合わせのバンドのサブセットを持つイメージを表します。- オーバーライド:
- createSubsetSampleModel、クラス:- ComponentSampleModel
- パラメータ:
- bands- この- ComponentSampleModelのバンドのサブセット
- 戻り値:
- このComponentSampleModelのバンドのサブセットで作成されたComponentSampleModel。
- 例外:
- RasterFormatException- バンド数がこのサンプル・モデル内のバンク数より多い場合。
- IllegalArgumentException-- dataTypeがサポートされているデータ型でない場合
 
- 
createDataBufferpublic DataBuffer createDataBuffer()このBandedSampleModelに対応するDataBufferを作成します。DataBufferのデータ型、バンク数、およびサイズは、このBandedSampleModelと一致します。- オーバーライド:
- createDataBuffer、クラス:- ComponentSampleModel
- 戻り値:
- このComponentSampleModelとデータ型、バンク数、およびサイズが同じDataBuffer。
- 例外:
- IllegalArgumentException-- dataTypeがサポートされている型でない場合。
 
- 
getDataElementspublic Object getDataElements(int x, int y, Object obj, DataBuffer data) transferType型のプリミティブ配列内の1つのピクセルのデータを返します。 BandedSampleModelの場合、これは同じデータ型になり、サンプルは配列要素ごとに1つ返されます。 通常は、Objectが自動的に作成され、正しい基本データ型になるように、objにはnullが渡されます。次のコードは、BandedSampleModel bsm1によってストレージ・レイアウトが記述されているDataBufferdb1から、BandedSampleModelbsm2によってストレージ・レイアウトが記述されているDataBufferdb2へ、1ピクセルのデータを転送する例です。 通常、この転送はgetPixelとsetPixelを使うよりも効率的です。BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModelのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModel間の転送には、getDataElements/setDataElementsを使用するのが適切です。objがnullでない場合は、TransferType型のプリミティブ配列になります。 そうでない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合、またはobjがnullでなく、ピクセル・データを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。 - オーバーライド:
- getDataElements、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- obj- nullでない場合は、ピクセル・データが返されるプリミティブ配列。
- data- イメージ・データを格納するDataBuffer。
- 戻り値:
- 指定されたピクセルのデータ。
- 関連項目:
 
- 
getPixelpublic int[] getPixel(int x, int y, int[] iArray, DataBuffer data) 指定されたピクセルのすべてのサンプルをint配列として返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- getPixel、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- iArray- nullでない場合、この配列内のサンプルを返します
- data- イメージ・データを格納するDataBuffer
- 戻り値:
- 指定されたピクセルのサンプル
- 関連項目:
 
- 
getPixelspublic int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 指定された矩形のピクセルのすべてのサンプルをint配列として返します。サンプルは、データ配列要素ごとに1つです。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- getPixels、クラス:- ComponentSampleModel
- パラメータ:
- x- 左上のピクセル位置のX座標
- y- 左上のピクセル位置のY座標
- w- ピクセル矩形の幅
- h- ピクセル矩形の高さ
- iArray- nullでない場合、この配列内のサンプルを返します
- data- イメージ・データを格納するDataBuffer
- 戻り値:
- 指定された領域内のピクセルのサンプル
- 関連項目:
 
- 
getSamplepublic int getSample(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- getSample、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- b- 返されるバンド
- data- イメージ・データを格納するDataBuffer
- 戻り値:
- 指定されたピクセルの指定されたバンド内のサンプル
- 関連項目:
 
- 
getSampleFloatpublic float getSampleFloat(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの指定されたバンド内のサンプルをfloatとして返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- getSampleFloat、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- b- 返されるバンド
- data- イメージ・データを格納するDataBuffer
- 戻り値:
- 指定されたピクセルの指定されたバンド内のサンプルを表すfloat値
 
- 
getSampleDoublepublic double getSampleDouble(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの指定されたバンド内のサンプルをdoubleとして返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- getSampleDouble、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- b- 返されるバンド
- data- イメージ・データを格納するDataBuffer
- 戻り値:
- 指定されたピクセルの指定されたバンド内のサンプルを表すdouble値
 
- 
getSamplespublic int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 指定されたピクセル矩形に使う、指定されたバンド内のサンプルをint配列として返します。データ配列要素にサンプル1個が対応します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- getSamples、クラス:- ComponentSampleModel
- パラメータ:
- x- 左上のピクセル位置のX座標
- y- 左上のピクセル位置のY座標
- w- ピクセル矩形の幅
- h- ピクセル矩形の高さ
- b- 返されるバンド
- iArray- nullでない場合、この配列内のサンプルを返します
- data- イメージ・データを格納するDataBuffer
- 戻り値:
- 指定された領域内にあるピクセルの指定されたバンド内のサンプル
- 関連項目:
 
- 
setDataElementspublic void setDataElements(int x, int y, Object obj, DataBuffer data) 指定されたDataBufferの1つのピクセルのデータを、TransferType型のプリミティブ配列から設定します。 BandedSampleModelの場合、これは同じデータ型になり、サンプルは配列要素ごとに1つ転送されます。次のコードは、BandedSampleModel bsm1によってストレージ・レイアウトが記述されているDataBufferdb1から、BandedSampleModelbsm2によってストレージ・レイアウトが記述されているDataBufferdb2へ、1ピクセルのデータを転送する例です。 通常、この転送はgetPixelとsetPixelを使うよりも効率的です。BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModelのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModel間の転送には、getDataElements/setDataElementsを使用するのが適切です。objは、TransferType型のプリミティブ配列になります。 そうでない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合、またはobjがピクセル・データを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。 - オーバーライド:
- setDataElements、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- obj- nullでない場合は、このオブジェクト内のプリミティブ配列を返す
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
- 
setPixelpublic void setPixel(int x, int y, int[] iArray, DataBuffer data) サンプルのint配列を入力として使ってDataBuffer内のピクセルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- setPixel、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- iArray- int配列形式の入力サンプル
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
- 
setPixelspublic void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) 矩形のピクセルのサンプルすべてを、配列要素ごとに1つのサンプルが格納されているint配列から設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- setPixels、クラス:- ComponentSampleModel
- パラメータ:
- x- 左上のピクセル位置のX座標
- y- 左上のピクセル位置のY座標
- w- ピクセル矩形の幅
- h- ピクセル矩形の高さ
- iArray- int配列形式の入力サンプル
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
- 
setSamplepublic void setSample(int x, int y, int b, int s, DataBuffer data) intを入力とし、DataBufferの(x,y)に位置するピクセルの、指定されたバンドのサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- setSample、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- b- 設定されるバンド
- s- intの入力サンプル
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
- 
setSamplepublic void setSample(int x, int y, int b, float s, DataBuffer data) floatを入力として使用し、DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- setSample、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- b- 設定されるバンド
- s- floatでの入力サンプル
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
- 
setSamplepublic void setSample(int x, int y, int b, double s, DataBuffer data) doubleを入力として使用し、DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- setSample、クラス:- ComponentSampleModel
- パラメータ:
- x- ピクセル位置のX座標
- y- ピクセル位置のY座標
- b- 設定されるバンド
- s- doubleでの入力サンプル
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
- 
setSamplespublic void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) データ配列要素あたり1個のサンプルを格納しているint配列から、指定されたピクセル矩形の、指定されたバンドにサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
- setSamples、クラス:- ComponentSampleModel
- パラメータ:
- x- 左上のピクセル位置のX座標
- y- 左上のピクセル位置のY座標
- w- ピクセル矩形の幅
- h- ピクセル矩形の高さ
- b- 設定されるバンド
- iArray- 入力サンプル配列
- data- イメージ・データを格納するDataBuffer
- 関連項目:
 
 
-