- java.lang.Object
 - 
- java.awt.image.SampleModel
 - 
- java.awt.image.MultiPixelPackedSampleModel
 
 
 
- 
public class MultiPixelPackedSampleModel extends SampleModel
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); 
- 
- 
フィールドのサマリー
- 
クラス java.awt.image.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を構築します。 
- 
メソッドのサマリー
修飾子と型 メソッド 説明 SampleModelcreateCompatibleSampleModel(int w, int h)指定された幅と高さを持つ新しいMultiPixelPackedSampleModelを作成します。DataBuffercreateDataBuffer()このMultiPixelPackedSampleModelに対応するDataBufferを作成します。SampleModelcreateSubsetSampleModel(int[] bands)このMultiPixelPackedSampleModelのバンドのサブセットを持つ新しいMultiPixelPackedSampleModelを生成します。intgetBitOffset(int x)走査線のx番目のピクセルとして格納されているデータ要素のオフセットをビット数で返します。intgetDataBitOffset()データ・ビット・オフセットをビット数で返します。ObjectgetDataElements(int x, int y, Object obj, DataBuffer data)transferType型のプリミティブ配列内の1つのピクセルのデータを返します。intgetNumDataElements()getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)メソッドおよびsetDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)メソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。intgetOffset(int x, int y)ピクセル(x, y)のデータ配列要素でのオフセットを返します。int[]getPixel(int x, int y, int[] iArray, DataBuffer data)int配列の先頭要素の、指定された1つのバンドのピクセルを返します。intgetPixelBitStride()ピクセル・ビット・ストライドをビット数で返します。intgetSample(int x, int y, int b, DataBuffer data)(x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。int[]getSampleSize()すべてのバンドのサンプルあたりのビット数を返します。intgetSampleSize(int band)指定されたバンドのサンプルあたりのビット数を返します。intgetScanlineStride()走査線ストライドを返します。intgetTransferType()getDataElementsメソッドと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)に位置するピクセルの、指定されたバンドのサンプルを設定します。- 
クラス java.awt.image.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 
 - 
 
 - 
 
- 
- 
コンストラクタの詳細
- 
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, java.lang.Object, java.awt.image.DataBuffer)メソッドおよびsetDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)メソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。MultiPixelPackedSampleModelの場合は1になります。- 定義:
 getNumDataElements、クラス:SampleModel- 戻り値:
 - データ要素数。
 - 関連項目:
 SampleModel.getDataElements(int, int, Object, DataBuffer),SampleModel.getDataElements(int, int, int, int, Object, DataBuffer),SampleModel.setDataElements(int, int, Object, DataBuffer),SampleModel.setDataElements(int, int, int, int, Object, DataBuffer),SampleModel.getTransferType()
 
- 
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
 - 関連項目:
 SampleModel.getDataElements(int, int, Object, DataBuffer)、SampleModel.getDataElements(int, int, int, int, Object, DataBuffer)、SampleModel.setDataElements(int, int, Object, DataBuffer)、SampleModel.setDataElements(int, int, int, int, Object, DataBuffer)、SampleModel.getNumDataElements()、DataBuffer
 
- 
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(int, int, int, int, DataBuffer)
 
- 
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- 座標が範囲外にある場合。- 関連項目:
 getSample(int, int, int, DataBuffer)
 
- 
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から、MultiPixelPackedSampleModel mppsm2によってストレージ・レイアウトが記述されているDataBuffer db2へ、1ピクセルのデータを転送する例です。 この転送方法は、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ではないかピクセル・データを保持するのに十分な大きさではない場合- 関連項目:
 setDataElements(int, int, Object, DataBuffer)
 
- 
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- 座標が範囲外にある場合- 関連項目:
 setPixel(int, int, int[], DataBuffer)
 
- 
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から、MultiPixelPackedSampleModel mppsm2によってストレージ・レイアウトが記述されているDataBuffer db2へ、1ピクセルのデータを転送する例です。 この転送方法は、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- 関連項目:
 getDataElements(int, int, Object, DataBuffer)
 
- 
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- 関連項目:
 getPixel(int, int, int[], DataBuffer)
 
 - 
 
 -