クラスMultiPixelPackedSampleModel
MultiPixelPackedSampleModelクラスは、単一バンド化されたイメージを表現し、複数の単一サンプル・ピクセルを1つのデータ要素にパックできます。 ピクセルは、複数のデータ要素にまたがることはできません。 データ型は、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTです。 各ピクセルは2のべき乗のビット数でなければならず、2のべき乗個のピクセルが、1つのデータ要素にぴったり収まらなければいけません。 ピクセル・ビット・ストライドは、1ピクセルあたりのビット数と同じです。 走査線ストライドはデータ要素内にあり、最後のいくつかのデータ要素が未使用のピクセルでパディングされます。 データ・ビット・オフセットは、DataBufferの先頭から最初のピクセルまでのビット単位のオフセットであり、ピクセル・ビット・ストライドの倍数です。
次のコードは、DataBuffer dataからピクセルx, yのビットを抽出し、型dataTypeのデータ要素にピクセル・データを格納することを示しています:
int dataElementSize = DataBuffer.getDataTypeSize(dataType);
int bitnum = dataBitOffset + x*pixelBitStride;
int element = data.getElem(y*scanlineStride + bitnum/dataElementSize);
int shift = dataElementSize - (bitnum & (dataElementSize-1))
- pixelBitStride;
int pixel = (element >> shift) & ((1 << pixelBitStride) - 1);
-
フィールドのサマリー
クラスで宣言されたフィールド SampleModel
dataType, height, numBands, width -
コンストラクタのサマリー
コンストラクタコンストラクタ説明MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits) 指定されたデータ型、幅、高さ、および1ピクセルあたりのビット数を持つMultiPixelPackedSampleModelを構築します。MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset) 指定されたデータ型、幅、高さ、1ピクセルあたりのビット数、走査線ストライド、およびデータ・ビット・オフセットを持つMultiPixelPackedSampleModelを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明createCompatibleSampleModel(int w, int h) 指定された幅と高さを持つ新しいMultiPixelPackedSampleModelを作成します。このMultiPixelPackedSampleModelに対応するDataBufferを作成します。createSubsetSampleModel(int[] bands) このMultiPixelPackedSampleModelのバンドのサブセットを持つ新しいMultiPixelPackedSampleModelを生成します。intgetBitOffset(int x) 走査線のx番目のピクセルとして格納されているデータ要素のオフセットをビット数で返します。intデータ・ビット・オフセットをビット数で返します。getDataElements(int x, int y, Object obj, DataBuffer data) transferType型のプリミティブ配列内の1つのピクセルのデータを返します。intgetDataElements(int, int, Object, DataBuffer)メソッドおよびsetDataElements(int, int, Object, DataBuffer)メソッドを使用して1つのピクセルを転送するために必要なデータ要素の数を返します。intgetOffset(int x, int y) ピクセル(x, y)のデータ配列要素でのオフセットを返します。int[]getPixel(int x, int y, int[] iArray, DataBuffer data) int配列の先頭要素の、指定された1つのバンドのピクセルを返します。intピクセル・ビット・ストライドをビット数で返します。intgetSample(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。int[]すべてのバンドのサンプルあたりのビット数を返します。intgetSampleSize(int band) 指定されたバンドのサンプルあたりのビット数を返します。int走査線ストライドを返します。intgetDataElementsメソッドとsetDataElementsメソッドによりピクセルを転送するために使うTransferTypeを返します。voidsetDataElements(int x, int y, Object obj, DataBuffer data) 指定されたDataBufferの1つのピクセルのデータを、TransferType型のプリミティブ配列から設定します。voidsetPixel(int x, int y, int[] iArray, DataBuffer data) int配列を入力とし、DataBufferのピクセルを設定します。voidsetSample(int x, int y, int b, int s, DataBuffer data) intを入力とし、DataBufferの(x, y)に位置するピクセルの、指定されたバンドのサンプルを設定します。クラスで宣言されたメソッド SampleModel
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getSamples, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setPixels, setSample, setSample, setSamples, setSamples, setSamples修飾子と型メソッド説明getDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) TransferType型のプリミティブ配列の、指定されたピクセル矩形のピクセル・データを返します。final intピクセル・データが格納されているDataBufferのデータ型を返します。final int高さをピクセル数で返します。final intイメージ・データのバンドの総数を返します。double[]getPixel(int x, int y, double[] dArray, DataBuffer data) doubleの配列内の指定されたピクセルのサンプルを返します。float[]getPixel(int x, int y, float[] fArray, DataBuffer data) floatの配列内の指定されたピクセルのサンプルを返します。double[]getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data) double配列のピクセル矩形のすべてのサンプルを返します。配列要素ごとに1つのサンプルが返されます。float[]getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data) float配列のピクセル矩形のすべてのサンプルを返します。配列要素ごとに1つのサンプルが返されます。int[]getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data) int配列のピクセル矩形のすべてのサンプルを返します。配列要素ごとに1つのサンプルが返されます。doublegetSampleDouble(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの指定されたバンド内のサンプルをdoubleとして返します。floatgetSampleFloat(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの指定されたバンド内のサンプルをfloatとして返します。double[]getSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data) double配列内の指定されたピクセル矩形の、指定されたバンドのサンプルを返します。配列要素ごとに1つのサンプルが返されます。float[]getSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data) float配列内の指定されたピクセル矩形の、指定されたバンドのサンプルを返します。配列要素ごとに1つのサンプルが返されます。int[]getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) int配列の指定されたピクセルの矩形の、指定されたバンドのサンプルを返します。配列要素ごとに1つのサンプルが返されます。final intgetWidth()幅をピクセル数で返します。voidsetDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) TransferType型のプリミティブ配列から、指定されたDataBuffer内のピクセル矩形のデータを設定します。voidsetPixel(int x, int y, double[] dArray, DataBuffer data) サンプルのdouble配列を入力として、DataBuffer内のピクセルを設定します。voidsetPixel(int x, int y, float[] fArray, DataBuffer data) サンプルのfloat配列を入力として使ってDataBuffer内のピクセルを設定します。voidsetPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data) 矩形のピクセルのサンプルすべてを、配列要素ごとに1つのサンプルが格納されているdouble配列から設定します。voidsetPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data) 矩形のピクセルのサンプルすべてを、配列要素ごとに1つのサンプルが格納されているfloat配列から設定します。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)に位置するピクセルの、指定されたバンド内のサンプルを設定します。voidsetSamples(int x, int y, int w, int h, int b, double[] dArray, DataBuffer data) 指定された矩形ピクセルの指定されたバンドのサンプルを、配列要素ごとに1つのサンプルが格納されているdouble配列から設定します。voidsetSamples(int x, int y, int w, int h, int b, float[] fArray, DataBuffer data) 指定された矩形ピクセルの指定されたバンドのサンプルを、配列要素ごとに1つのサンプルが格納されているfloat配列から設定します。voidsetSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data) 指定された矩形ピクセルの指定されたバンドのサンプルを、配列要素ごとに1つのサンプルが格納されているint配列から設定します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
MultiPixelPackedSampleModel
public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits) 指定されたデータ型、幅、高さ、および1ピクセルあたりのビット数を持つMultiPixelPackedSampleModelを構築します。- パラメータ:
dataType- サンプル格納用のデータ形式w- 記述されるイメージ・データの領域の幅(ピクセル単位)h- 記述されるイメージ・データの領域の高さ(ピクセル単位)numberOfBits- ピクセルごとのビット数- スロー:
IllegalArgumentException-dataTypeがDataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTのいずれでもない場合
-
MultiPixelPackedSampleModel
public MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset) 指定されたデータ型、幅、高さ、1ピクセルあたりのビット数、走査線ストライド、およびデータ・ビット・オフセットを持つMultiPixelPackedSampleModelを構築します。- パラメータ:
dataType- サンプル格納用のデータ形式w- 記述されるイメージ・データの領域の幅(ピクセル単位)h- 記述されるイメージ・データの領域の高さ(ピクセル単位)numberOfBits- ピクセルごとのビット数scanlineStride- イメージ・データの走査線ストライドdataBitOffset- 記述されているイメージ・データ領域のデータ・ビット・オフセット- スロー:
RasterFormatException- 1ピクセルあたりのビット数が2のべき乗でない場合、あるいは2のべき乗個のピクセルが1データ要素に収まらない場合。IllegalArgumentException-wまたはhが0以下である場合IllegalArgumentException-dataTypeがDataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTのいずれでもない場合
-
-
メソッドの詳細
-
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h) 指定された幅と高さを持つ新しいMultiPixelPackedSampleModelを作成します。 新しいMultiPixelPackedSampleModelのストレージ・データ型と1ピクセルあたりのビット数は、このMultiPixelPackedSampleModelと同じです。- 定義:
createCompatibleSampleModel、クラスSampleModel- パラメータ:
w- 指定された幅h- 指定された高さ- 戻り値:
- 指定された幅と高さを持ち、この
MultiPixelPackedSampleModelとストレージ・データ型および1ピクセルあたりのビット数が同じSampleModel。 - スロー:
IllegalArgumentException-wまたはhが0以下である場合
-
createDataBuffer
public DataBuffer createDataBuffer()このMultiPixelPackedSampleModelに対応するDataBufferを作成します。DataBufferオブジェクトのデータ型とサイズは、このMultiPixelPackedSampleModelと同じです。DataBufferは1つのバンクを持ちます。- 定義:
createDataBuffer、クラスSampleModel- 戻り値:
- この
MultiPixelPackedSampleModelとデータ型およびサイズが同じDataBuffer。
-
getNumDataElements
public int getNumDataElements()getDataElements(int, int, Object, DataBuffer)メソッドおよびsetDataElements(int, int, Object, DataBuffer)メソッドを使用して1つのピクセルを転送するために必要なデータ要素の数を返します。MultiPixelPackedSampleModelの場合は1になります。- 定義:
getNumDataElements、クラスSampleModel- 戻り値:
- データ要素数。
- 関連項目:
-
getSampleSize
public int[] getSampleSize()すべてのバンドのサンプルあたりのビット数を返します。- 定義:
getSampleSize、クラスSampleModel- 戻り値:
- サンプルごとのビット数。
-
getSampleSize
public int getSampleSize(int band) 指定されたバンドのサンプルあたりのビット数を返します。- 定義:
getSampleSize、クラスSampleModel- パラメータ:
band- 指定されたバンド- 戻り値:
- 指定されたバンドのサンプルあたりのビット数
-
getOffset
public int getOffset(int x, int y) ピクセル(x, y)のデータ配列要素でのオフセットを返します。- パラメータ:
x- 指定されたピクセルのX座標y- 指定されたピクセルのY座標- 戻り値:
- 指定されたピクセルのオフセット。
-
getBitOffset
public int getBitOffset(int x) 走査線のx番目のピクセルとして格納されているデータ要素のオフセットをビット数で返します。 このオフセットは、すべての走査線で同じです。- パラメータ:
x- 指定されたピクセル- 戻り値:
- 指定されたピクセルのビット・オフセット
-
getScanlineStride
public int getScanlineStride()走査線ストライドを返します。- 戻り値:
- この
MultiPixelPackedSampleModelの走査線ストライド。
-
getPixelBitStride
public int getPixelBitStride()ピクセル・ビット・ストライドをビット数で返します。 この値は、1ピクセルあたりのビット数と同じです。- 戻り値:
- この
MultiPixelPackedSampleModelのpixelBitStride。
-
getDataBitOffset
public int getDataBitOffset()データ・ビット・オフセットをビット数で返します。- 戻り値:
- この
MultiPixelPackedSampleModelのdataBitOffset。
-
getTransferType
public int getTransferType()getDataElementsメソッドとsetDataElementsメソッドによりピクセルを転送するために使うTransferTypeを返します。 TransferTypeは、ストレージ・データ型と同じでも、異なっていてもかまいません。 TransferTypeは、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTのいずれかになります。- オーバーライド:
getTransferType、クラスSampleModel- 戻り値:
- transferType
- 関連項目:
-
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands) このMultiPixelPackedSampleModelのバンドのサブセットを持つ新しいMultiPixelPackedSampleModelを生成します。MultiPixelPackedSampleModelはバンドを1つしか持たないので、bands引数は長さ1でゼロ番目のバンドを示す必要があります。- 定義:
createSubsetSampleModel、クラスSampleModel- パラメータ:
bands- 指定されたバンド- 戻り値:
- この
MultiPixelPackedSampleModelのバンドのサブセットを持つ新しいSampleModel。 - スロー:
RasterFormatException- 要求されたバンド数が1でない場合。IllegalArgumentException-wまたはhが0以下である場合
-
getSample
public int getSample(int x, int y, int b, DataBuffer data) (x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- 定義:
getSample、クラスSampleModel- パラメータ:
x- 指定されたピクセルのX座標y- 指定されたピクセルのY座標b- 返されるバンド。0である必要がありますdata- イメージ・データを格納するDataBuffer- 戻り値:
- 指定されたピクセルのサンプルが格納されている、指定されたバンド
- スロー:
ArrayIndexOutOfBoundsException- 指定された座標が範囲外にある場合。- 関連項目:
-
setSample
public void setSample(int x, int y, int b, int s, DataBuffer data) intを入力とし、DataBufferの(x, y)に位置するピクセルの、指定されたバンドのサンプルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- 定義:
setSample、クラスSampleModel- パラメータ:
x- 指定されたピクセルのX座標y- 指定されたピクセルのY座標b- 設定するバンド(0である必要があります)s-intの入力サンプルdata- イメージ・データの格納先のDataBuffer- スロー:
ArrayIndexOutOfBoundsException- 座標が範囲外にある場合。- 関連項目:
-
getDataElements
public Object getDataElements(int x, int y, Object obj, DataBuffer data) transferType型のプリミティブ配列内の1つのピクセルのデータを返します。MultiPixelPackedSampleModelの場合、配列は1つの要素を持ち、型は1つのピクセルを格納できるDataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTのうちの最小のものになります。 一般に、objはnullで渡されるので、Objectは自動的に作成され、正しい基本データ型になります。次のコードは、ストレージ・レイアウトが
MultiPixelPackedSampleModelmppsm1で記述されているDataBuffer db1からDataBuffer db2への1ピクセルのデータの転送を示しています。その格納レイアウトはMultiPixelPackedSampleModel mppsm2で記述されています。 この転送方法は、getPixelまたはsetPixelを使う方法よりも通常効率的です。MultiPixelPackedSampleModel mppsm1, mppsm2; DataBufferInt db1, db2; mppsm2.setDataElements(x, y, mppsm1.getDataElements(x, y, null, db1), db2);SampleModelsのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModelペア間の転送には、getDataElements/setDataElementsを使用するのが適切です。objがnullでない場合は、TransferType型のプリミティブ配列になります。 そうでない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合や、objがnullでなく、ピクセル・データを格納するために十分な大きさでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- 定義:
getDataElements、クラスSampleModel- パラメータ:
x- 指定されたピクセルのX座標y- 指定されたピクセルのY座標obj- ピクセル・データを返すプリミティブ配列、またはnull。data- イメージ・データを格納するDataBuffer。- 戻り値:
- 指定されたピクセルのデータが格納されている
Object。 - スロー:
ClassCastException-objがTransferType型のプリミティブ配列でなく、nullでもない場合ArrayIndexOutOfBoundsException- 座標が境界内にない場合。またはobjがnullではないかピクセル・データを保持するのに十分な大きさではない場合NullPointerException-dataがnullの場合。ArrayIndexOutOfBoundsException- 座標が境界内にない場合、または{code obj}が小さすぎて出力を保持できない場合。- 関連項目:
-
getPixel
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) int配列の先頭要素の、指定された1つのバンドのピクセルを返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
getPixel、クラスSampleModel- パラメータ:
x- 指定されたピクセルのX座標y- 指定されたピクセルのY座標iArray返されるピクセルが格納される配列、またはnulldata- イメージ・データの格納先のDataBuffer- 戻り値:
- 指定されたピクセルが格納されている配列
- スロー:
ArrayIndexOutOfBoundsException- 座標が境界内にない場合、またはiArrayが小さすぎて出力を保持できない場合。NullPointerException-dataがnullの場合。ArrayIndexOutOfBoundsException- 座標が境界内にない場合、またはiArrayが小さすぎて出力を保持できない場合。- 関連項目:
-
setDataElements
public void setDataElements(int x, int y, Object obj, DataBuffer data) 指定されたDataBufferの1つのピクセルのデータを、TransferType型のプリミティブ配列から設定します。MultiPixelPackedSampleModelの場合は、配列の先頭要素だけが有効なデータを保持し、型は1つのピクセルを保持できるDataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、またはDataBuffer.TYPE_INTのうちの最小のものになります。次のコードは、ストレージ・レイアウトが
MultiPixelPackedSampleModelmppsm1で記述されているDataBuffer db1からDataBuffer db2への1ピクセルのデータの転送を示しています。その格納レイアウトはMultiPixelPackedSampleModel mppsm2で記述されています。 この転送方法は、getPixelまたはsetPixelを使う方法よりも通常効率的です。MultiPixelPackedSampleModel mppsm1, mppsm2; DataBufferInt db1, db2; mppsm2.setDataElements(x, y, mppsm1.getDataElements(x, y, null, db1), db2);SampleModelオブジェクトのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModelペア間の転送には、getDataElements/setDataElementsを使用するのが適切です。objは、TransferType型のプリミティブ配列になります。 そうでない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合や、objがピクセル・データを格納するために十分な大きさでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- 定義:
setDataElements、クラスSampleModel- パラメータ:
x- ピクセル位置のX座標y- ピクセル位置のY座標obj- ピクセル・データを格納するプリミティブ配列data- イメージ・データを格納するDataBuffer- スロー:
NullPointerException-objまたはdataがnullの場合。ArrayIndexOutOfBoundsException- 座標が境界内にない場合、またはobjが小さすぎて入力を保持できない場合。- 関連項目:
-
setPixel
public void setPixel(int x, int y, int[] iArray, DataBuffer data) int配列を入力とし、DataBufferのピクセルを設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
setPixel、クラスSampleModel- パラメータ:
x- ピクセル位置のX座標y- ピクセル位置のY座標iArray-int配列の入力ピクセルdata- イメージ・データを格納するDataBuffer- スロー:
NullPointerException-iArrayまたはdataがnullの場合。ArrayIndexOutOfBoundsException- 座標が境界内にない場合、またはiArrayが小さすぎて入力を保持できない場合。- 関連項目:
-