public class ComponentSampleModel extends SampleModel
DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTを使用)で格納できる符号なし整数値を各サンプルに持つイメージ・データ、16ビット(DataBuffer.TYPE_SHORTを使用)で格納できる符号付き整数値を各サンプルに持つデータ、または符号付きfloat型またはdouble型の数値(それぞれDataBuffer.TYPE_FLOATまたはDataBuffer.TYPE_DOUBLEを使用)を各サンプルに持つデータを表すことができます。 このとき、指定されたComponentSampleModelのすべてのサンプルも、同じ精度で格納されます。 すべてのストライド、およびオフセットは、負でない数値とする必要があります。 このクラスは、TYPE_BYTE、TYPE_USHORT、TYPE_SHORT、TYPE_INT、TYPE_FLOAT、およびTYPE_DOUBLEをサポートします。 | 修飾子と型 | フィールド | 説明 | 
|---|---|---|
| protected int[] | bandOffsets | データ配列要素にあるすべてのバンドのオフセットです。 | 
| protected int[] | bankIndices | イメージ・データのバンドを格納する各バンクのインデックスです。 | 
| protected int | numBands | この ComponentSampleModel内のバンド数です。 | 
| protected int | numBanks | この ComponentSampleModel内のバンク数です。 | 
| protected int | pixelStride | このComponentSampleModelで記述されるイメージ・データ領域(データ配列要素)のピクセル・ストライドです。 | 
| protected int | scanlineStride | このComponentSampleModelで記述されるイメージ・データ領域(データ配列要素)の走査線ストライドです。 | 
dataType, height, 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を構築します。 | 
| boolean | equals(Object o) | このオブジェクトと他のオブジェクトが等しいかどうかを示します。 | 
| int[] | getBandOffsets() | すべてのバンドについて、バンドのオフセットを返します。 | 
| int[] | getBankIndices() | すべてのバンクについて、バンクのインデックスを返します。 | 
| Object | getDataElements(int x, int y, Object obj, DataBuffer data) | TransferType型のプリミティブ配列内の1つのピクセルのデータを返します。 | 
| int | getNumDataElements() | getDataElements(int, int, Object, DataBuffer)メソッドおよびsetDataElements(int, int, Object, DataBuffer)メソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。 | 
| 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配列として返します。配列要素にサンプル1個が対応します。 | 
| int[] | getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) | int配列の指定されたピクセルの矩形のすべてのサンプルを返します。配列要素ごとに1つのサンプルが返されます。 | 
| int | getPixelStride() | このComponentSampleModelのピクセル・ストライドを返します。 | 
| int | getSample(int x, int y, int b, DataBuffer data) | (x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。 | 
| double | getSampleDouble(int x, int y, int b, DataBuffer data) | (x, y)に位置するピクセルの指定されたバンド内のサンプルをdoubleとして返します。 | 
| float | getSampleFloat(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個が対応します。 | 
| int[] | getSampleSize() | すべてのバンドのサンプルあたりのビット数を返します。 | 
| int | getSampleSize(int band) | 指定されたバンドのサンプルあたりのビット数を返します。 | 
| int | getScanlineStride() | このComponentSampleModelの走査線ストライドを返します。 | 
| int | hashCode() | オブジェクトのハッシュ・コード値を返します。 | 
| 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, double s, DataBuffer data) | doubleを入力として使用し、 DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。 | 
| void | setSample(int x, int y, int b, float s, DataBuffer data) | floatを入力として使用し、 DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。 | 
| 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配列から、指定されたピクセル矩形の、指定されたバンドにサンプルを設定します。 | 
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamplesprotected int[] bandOffsets
protected int[] bankIndices
protected int numBands
ComponentSampleModel内のバンド数です。protected int numBanks
ComponentSampleModel内のバンク数です。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 - すべてのバンドのオフセットIllegalArgumentException - wまたはhが0以下である場合IllegalArgumentException - pixelStrideが0より小さい場合IllegalArgumentException - scanlineStrideが0より小さい場合IllegalArgumentException - numBandsが1より小さい場合IllegalArgumentException - wとhの積がInteger.MAX_VALUEより大きい場合IllegalArgumentException - dataTypeがサポートされているデータ型でない場合public ComponentSampleModel(int dataType,
                            int w,
                            int h,
                            int pixelStride,
                            int scanlineStride,
                            int[] bankIndices,
                            int[] bandOffsets)
dataType - サンプル格納用のデータ形式w - 記述されたイメージ・データの領域の幅(単位はピクセル)h - 記述されたイメージ・データの領域の高さ(単位はピクセル)pixelStride - 記述されるイメージ・データの領域のピクセル・ストライドscanlineStride - 記述されるイメージ・データの領域のライン・ストライドbankIndices - すべてのバンドのバンク・インデックスbandOffsets - すべてのバンドのバンド・オフセットIllegalArgumentException - wまたはhが0以下である場合IllegalArgumentException - pixelStrideが0より小さい場合IllegalArgumentException - scanlineStrideが0より小さい場合IllegalArgumentException - bankIndicesの長さがbankOffsetsの長さと等しくない場合IllegalArgumentException - bandIndicesのバンク・インデックスのいずれかが0より小さい場合IllegalArgumentException - dataTypeがサポートされているデータ型でない場合public SampleModel createCompatibleSampleModel(int w, int h)
ComponentSampleModelを作成します。 新しいSampleModelは、このSampleModelと同じ数のバンド、ストレージ・データ型、インタリーブ化方式、およびピクセル・ストライドを持ちます。 createCompatibleSampleModel、クラスSampleModelw - 結果として得られるSampleModelの幅h - 結果として得られるSampleModelの高さComponentSampleModelIllegalArgumentException - wまたはhが0以下である場合public SampleModel createSubsetSampleModel(int[] bands)
createSubsetSampleModel、クラスSampleModelbands - このComponentSampleModelのバンドのサブセットComponentSampleModelのバンドのサブセットで作成されたComponentSampleModel。public DataBuffer createDataBuffer()
ComponentSampleModelに対応するDataBufferを構築します。 DataBufferのデータ型、バンク数、およびサイズは、このComponentSampleModelと矛盾しません。 createDataBuffer、クラスSampleModelComponentSampleModelとデータ型、バンク数、およびサイズが同じDataBuffer。public int getOffset(int x,
                     int y)
DataBuffer dataから、ComponentSampleModel csmを使って次のようにして取得できます。 
 
        data.getElem(csm.getOffset(x, y));
 x - ピクセルのX位置y - ピクセルのY位置public int getOffset(int x,
                     int y,
                     int b)
bのサンプルは、DataBuffer dataから、ComponentSampleModel csmを使って次のようにして取得できます。 
 
       data.getElem(csm.getOffset(x, y, b));
 x - 指定されたピクセルのX位置y - 指定されたピクセルのY位置b - 指定されたバンドpublic final int[] getSampleSize()
getSampleSize、クラスSampleModelpublic final int getSampleSize(int band)
getSampleSize、クラスSampleModelband - 指定されたバンドpublic final int[] getBankIndices()
public final int[] getBandOffsets()
public final int getScanlineStride()
ComponentSampleModelの走査線ストライド。public final int getPixelStride()
ComponentSampleModelのピクセル・ストライド。public final int getNumDataElements()
getDataElements(int, int, Object, DataBuffer)メソッドおよびsetDataElements(int, int, Object, DataBuffer)メソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。 ComponentSampleModelでは、これはバンド数と等しくなります。 getNumDataElements、クラスSampleModelgetDataElementsメソッドとsetDataElementsメソッドで1ピクセルを転送するために必要なデータ要素の数。SampleModel.getNumDataElements(), SampleModel.getNumBands()public Object getDataElements(int x, int y, Object obj, DataBuffer data)
TransferType型のプリミティブ配列内の1つのピクセルのデータを返します。 ComponentSampleModelでは、これはデータ型と等しくなり、サンプルが配列要素ごとに1個ずつ返されます。 通常は、Objectが自動的に作成され、正しい基本データ型になるように、objにはnullが渡されます。 
 
 次のコードは、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オブジェクトのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModelペア間の転送には、getDataElementsおよびsetDataElementsを使用するのが適切です。
 
 objがnullでない場合は、TransferType型のプリミティブ配列になります。 そうでない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合や、objがnullでなく、ピクセル・データを格納するために十分な大きさでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。 
getDataElements、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標obj - nullでない場合は、ピクセル・データが返されるプリミティブ配列data - イメージ・データを格納するDataBufferNullPointerException - dataがnullの場合。ArrayIndexOutOfBoundsException - 座標が境界内に存在しない場合、またはobjが小さすぎて出力を保持できない場合。setDataElements(int, int, Object, DataBuffer)public int[] getPixel(int x,
                      int y,
                      int[] iArray,
                      DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 getPixel、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標iArray - nullでない場合、この配列内のサンプルを返しますdata - イメージ・データを格納するDataBufferNullPointerException - dataがnullの場合。ArrayIndexOutOfBoundsException - 座標が境界内に存在しない場合、またはiArrayが小さすぎて出力を保持できない場合。setPixel(int, int, int[], DataBuffer)public int[] getPixels(int x,
                       int y,
                       int w,
                       int h,
                       int[] iArray,
                       DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 getPixels、クラスSampleModelx - 左上のピクセル位置のX座標y - 左上のピクセル位置のY座標w - ピクセル矩形の幅h - ピクセル矩形の高さiArray - nullでない場合、この配列内のサンプルを返しますdata - イメージ・データを格納するDataBuffersetPixels(int, int, int, int, int[], DataBuffer)public int getSample(int x,
                     int y,
                     int b,
                     DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 getSample、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標b - 返されるバンドdata - イメージ・データを格納するDataBuffersetSample(int, int, int, int, DataBuffer)public float getSampleFloat(int x,
                            int y,
                            int b,
                            DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 getSampleFloat、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標b - 返されるバンドdata - イメージ・データを格納するDataBufferpublic double getSampleDouble(int x,
                              int y,
                              int b,
                              DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 getSampleDouble、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標b - 返されるバンドdata - イメージ・データを格納するDataBufferpublic int[] getSamples(int x,
                        int y,
                        int w,
                        int h,
                        int b,
                        int[] iArray,
                        DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 getSamples、クラスSampleModelx - 左上のピクセル位置のX座標y - 左上のピクセル位置のY座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 返されるバンドiArray - nullでない場合、この配列内のサンプルを返すdata - イメージ・データを格納するDataBuffersetSamples(int, int, int, int, int, int[], DataBuffer)public void setDataElements(int x,
                            int y,
                            Object obj,
                            DataBuffer data)
DataBufferの1つのピクセルのデータを、TransferType型のプリミティブ配列から設定します。 ComponentSampleModelでは、これはデータ型と同じになり、サンプルは各配列要素に1個ずつ転送されます。 
 
 次のコードは、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オブジェクトのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModelペア間の転送には、getDataElementsおよびsetDataElementsを使用するのが適切です。
 
 objがTransferType型のプリミティブ配列でない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合や、objがピクセル・データを格納するために十分な大きさでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。 
setDataElements、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標obj - ピクセル・データを格納するプリミティブ配列data - イメージ・データを格納するDataBuffergetDataElements(int, int, Object, DataBuffer)public void setPixel(int x,
                     int y,
                     int[] iArray,
                     DataBuffer data)
DataBuffer内のピクセルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされることがあります。 setPixel、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標iArray - int配列形式の入力サンプルdata - イメージ・データを格納するDataBuffergetPixel(int, int, int[], DataBuffer)public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      int[] iArray,
                      DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 setPixels、クラスSampleModelx - 左上のピクセル位置のX座標y - 左上のピクセル位置のY座標w - ピクセル矩形の幅h - ピクセル矩形の高さiArray - int配列形式の入力サンプルdata - イメージ・データを格納するDataBuffergetPixels(int, int, int, int, int[], DataBuffer)public void setSample(int x,
                      int y,
                      int b,
                      int s,
                      DataBuffer data)
DataBufferの(x,y)に位置するピクセルの、指定されたバンドのサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされることがあります。 setSample、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標b - 設定されるバンドs - intの入力サンプルdata - イメージ・データを格納するDataBuffergetSample(int, int, int, DataBuffer)public void setSample(int x,
                      int y,
                      int b,
                      float s,
                      DataBuffer data)
DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされることがあります。 setSample、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標b - 設定されるバンドs - floatでの入力サンプルdata - イメージ・データを格納するDataBuffergetSample(int, int, int, DataBuffer)public void setSample(int x,
                      int y,
                      int b,
                      double s,
                      DataBuffer data)
DataBuffer内の(x, y)に位置するピクセルの、指定されたバンド内のサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされることがあります。 setSample、クラスSampleModelx - ピクセル位置のX座標y - ピクセル位置のY座標b - 設定されるバンドs - doubleでの入力サンプルdata - イメージ・データを格納するDataBuffergetSample(int, int, int, DataBuffer)public void setSamples(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       int[] iArray,
                       DataBuffer data)
ArrayIndexOutOfBoundsExceptionがスローされることがあります。 setSamples、クラスSampleModelx - 左上のピクセル位置のX座標y - 左上のピクセル位置のY座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 設定されるバンドiArray - int配列形式の入力サンプルdata - イメージ・データを格納するDataBuffergetSamples(int, int, int, int, int, int[], DataBuffer)public boolean equals(Object o)
Object
 equalsメソッドは、null以外のオブジェクト参照での同値関係を実装します。
 
xについて、x.equals(x)はtrueを返します。
 xおよびyについて、y.equals(x)がtrueを返す場合に限り、x.equals(y)はtrueを返します。
 x、y、およびzについて、x.equals(y)がtrueを返し、y.equals(z)がtrueを返す場合、x.equals(z)はtrueを返します。
 xおよびyについて、x.equals(y)の複数の呼出しは、このオブジェクトに対するequalsによる比較で使われた情報が変更されていなければ、一貫してtrueを返すか、一貫してfalseを返します。
 xについて、x.equals(null)はfalseを返します。
 
 Objectクラスのequalsメソッドは、もっとも比較しやすいオブジェクトの同値関係を実装します。つまり、null以外の参照値xとyについて、このメソッドはxとyが同じオブジェクトを参照する(x == yがtrue)場合にだけtrueを返します。
 
 通常、このメソッドをオーバーライドする場合は、hashCodeメソッドを常にオーバーライドして、「等価なオブジェクトは等価なハッシュ・コードを保持する必要がある」というhashCodeメソッドの汎用規約に従う必要があることに留意してください。
equals、クラスObjecto - 比較対象の参照オブジェクト。true、それ以外の場合はfalse。Object.hashCode()、HashMappublic int hashCode()
ObjectHashMapによって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。 
 
 hashCodeの一般的な規則は次のとおりです。
 
equalsの比較で使用される情報が変更されていなければ、hashCodeメソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。 
 equals(Object)メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対するhashCodeメソッドの呼出しによって同じ整数の結果が生成される必要があります。
 Object.equals(java.lang.Object)メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対するhashCodeメソッドの呼出しによって異なる整数の結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。 
 
 クラスObjectによって定義されたhashCodeメソッドは、可能なかぎり、異なるオブジェクトに対して異なる整数を返します。 (これは通常、オブジェクトの内部アドレスを整数に変換することによって実装されますが、この実装テクニックはJava™プログラミング言語では必要ありません。) 
hashCode、クラスObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。