- java.lang.Object
-
- java.awt.image.SampleModel
-
- java.awt.image.SinglePixelPackedSampleModel
-
public class SinglePixelPackedSampleModel extends SampleModel
このクラスは、1つのピクセルを構成するN個のサンプルが1つのデータ配列要素に格納されるようにパックされたピクセル・データを表します。データ配列要素の各データは1つのピクセルだけのサンプルを保持します。 このクラスは、TYPE_BYTE
、TYPE_USHORT
、TYPE_INT
の各データ型をサポートします。 すべてのデータ配列要素は、DataBufferの最初のバンクに常駐します。 イメージ・データを直接操作できるように、アクセス用メソッドが提供されています。 走査線ストライドは、指定されたサンプルと次の走査線の同じ列の対応するサンプルとの間のデータ配列要素の数です。 ビット・マスクは、ピクセルのバンドを表すサンプルを抽出するのに必要なマスクです。 ビット・オフセットは、ピクセルのバンドを表すサンプルのデータ配列要素へのビット単位のオフセットです。次のコードは、DataBuffer
data
から、ピクセルx,y
のバンドb
を表すサンプルのビットを抽出する例です。int sample = data.getElem(y * scanlineStride + x); sample = (sample & bitMasks[b]) >>> bitOffsets[b];
-
-
フィールドのサマリー
-
クラス java.awt.image.SampleModelで宣言されたフィールド
dataType, height, numBands, width
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
bitMasks.lengthのバンドを使ってSinglePixelPackedSampleModelを構築します。SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
bitMasks.lengthのバンド、そしてscanlineStrideデータ配列要素と一致する走査線ストライドを使ってSinglePixelPackedSampleModelを構築します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 SampleModel
createCompatibleSampleModel(int w, int h)
指定された幅と高さを使って新しいSinglePixelPackedSampleModelを作成します。DataBuffer
createDataBuffer()
このSinglePixelPackedSampleModelに対応するDataBufferを生成します。SampleModel
createSubsetSampleModel(int[] bands)
このSinglePixelPackedSampleModelのバンドのサブセットを使って新しいSinglePixelPackedSampleModelを作成します。int[]
getBitMasks()
すべてのバンドのビット・マスクを返します。int[]
getBitOffsets()
すべてのバンドのピクセルを表すデータ配列要素にビット・オフセットを返します。Object
getDataElements(int x, int y, Object obj, DataBuffer data)
transferType型のプリミティブ配列内の1つのピクセルのデータを返します。int
getNumDataElements()
getDataElementsメソッドおよびsetDataElementsメソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。int
getOffset(int x, int y)
ピクセル(x, y)のデータ配列要素内のオフセットを返します。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つのサンプルが返されます。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配列の指定されたピクセルの矩形の、指定されたバンドのサンプルを返します。配列要素ごとに1つのサンプルが返されます。int[]
getSampleSize()
すべてのバンドのサンプルあたりのビット数を返します。int
getSampleSize(int band)
指定されたバンドのサンプルあたりのビット数を返します。int
getScanlineStride()
このSinglePixelPackedSampleModelの走査線ストライドを返します。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, 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.SampleModelで宣言されたメソッド
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSampleDouble, getSampleFloat, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSample, setSample, setSamples, setSamples
-
-
-
-
コンストラクタの詳細
-
SinglePixelPackedSampleModel
public SinglePixelPackedSampleModel(int dataType, int w, int h, int[] bitMasks)
bitMasks.lengthのバンドを使ってSinglePixelPackedSampleModelを構築します。 各サンプルは、データ配列要素の対応するビット・マスクの位置に格納されます。 各ビット・マスクは連続している必要があり、複数のマスクをオーバーラップさせることはできません。 データ型の容量を超えるビット・マスクは切り捨てられます。- パラメータ:
dataType
- サンプルの格納のためのデータ型。w
- 記述されたイメージ・データの領域の幅(単位はピクセル)。h
- 記述されたイメージ・データの領域の高さ(単位はピクセル)。bitMasks
- すべてのバンドのビット・マスク。- 例外:
IllegalArgumentException
-dataType
がDataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、またはDataBuffer.TYPE_INT
のいずれでもない場合
-
SinglePixelPackedSampleModel
public SinglePixelPackedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bitMasks)
bitMasks.lengthのバンド、そしてscanlineStrideデータ配列要素と一致する走査線ストライドを使ってSinglePixelPackedSampleModelを構築します。 各サンプルは、データ配列要素の対応するビット・マスクの位置に格納されます。 各ビット・マスクは連続している必要があり、複数のマスクをオーバーラップさせることはできません。 データ型の容量を超えるビット・マスクは切り捨てられます。- パラメータ:
dataType
- サンプルの格納のためのデータ型。w
- 記述されたイメージ・データの領域の幅(単位はピクセル)。h
- 記述されたイメージ・データの領域の高さ(単位はピクセル)。scanlineStride
- イメージ・データの走査線ストライド。bitMasks
- すべてのバンドのビット・マスク。- 例外:
IllegalArgumentException
-w
またはh
が0以下である場合IllegalArgumentException
-bitMask
のマスクが連続していない場合IllegalArgumentException
-dataType
がDataBuffer.TYPE_BYTE
、DataBuffer.TYPE_USHORT
、またはDataBuffer.TYPE_INT
のいずれでもない場合
-
-
メソッドの詳細
-
getNumDataElements
public int getNumDataElements()
getDataElementsメソッドおよびsetDataElementsメソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。 SinglePixelPackedSampleModelの場合は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()
-
createCompatibleSampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
指定された幅と高さを使って新しいSinglePixelPackedSampleModelを作成します。 新しいSinglePixelPackedSampleModelのストレージ・データ型とビット・マスクは、このSinglePixelPackedSampleModelと同じになります。- 定義:
createCompatibleSampleModel
、クラス:SampleModel
- パラメータ:
w
- 結果として得られるSampleModel
の幅h
- 結果として得られるSampleModel
の高さ- 戻り値:
- 指定された幅と高さを持つ
SinglePixelPackedSampleModel
。 - 例外:
IllegalArgumentException
-w
またはh
が0以下である場合
-
createDataBuffer
public DataBuffer createDataBuffer()
このSinglePixelPackedSampleModelに対応するDataBufferを生成します。 DataBufferのデータ型とサイズはこのSinglePixelPackedSampleModelと一致します。 DataBufferは1つのバンクを持ちます。- 定義:
createDataBuffer
、クラス:SampleModel
- 戻り値:
- この
SampleModel
に対するDataBuffer
。
-
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,y
が格納されているデータ要素は、次のようにSinglePixelPackedSampleModelsppsm
を使ってDataBufferdata
から取り出すことができます。data.getElem(sppsm.getOffset(x, y));
- パラメータ:
x
- 指定されたピクセルのX座標y
- 指定されたピクセルのY座標- 戻り値:
- 指定されたピクセルのオフセット。
-
getBitOffsets
public int[] getBitOffsets()
すべてのバンドのピクセルを表すデータ配列要素にビット・オフセットを返します。- 戻り値:
- すべてのバンドのピクセルを表すビット・オフセット
-
getBitMasks
public int[] getBitMasks()
すべてのバンドのビット・マスクを返します。- 戻り値:
- すべてのバンドのビット・マスク。
-
getScanlineStride
public int getScanlineStride()
このSinglePixelPackedSampleModelの走査線ストライドを返します。- 戻り値:
- この
SinglePixelPackedSampleModel
の走査線ストライド。
-
createSubsetSampleModel
public SampleModel createSubsetSampleModel(int[] bands)
このSinglePixelPackedSampleModelのバンドのサブセットを使って新しいSinglePixelPackedSampleModelを作成します。 新しいSinglePixelPackedSampleModelは、既存のSinglePixelPackedSampleModelで使用可能な任意のDataBufferとともに使用できます。 SinglePixelPackedSampleModelとDataBufferの新しい組み合わせは、元の組み合わせのバンドのサブセットを使ってイメージを表します。- 定義:
createSubsetSampleModel
、クラス:SampleModel
- パラメータ:
bands
- このSampleModel
のバンドのサブセット- 戻り値:
- この
SampleModel
のバンドのサブセットを持つSampleModel
。 - 例外:
RasterFormatException
- bands引数の長さがサンプル・モデルのバンド数より大きい場合。
-
getDataElements
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
transferType型のプリミティブ配列内の1つのピクセルのデータを返します。 SinglePixelPackedSampleModelの場合、配列は1つの要素を持ち、型はストレージ・データ型と同じになります。 通常は、Objectが自動的に作成され、正しい基本データ型になるように、objにはnullが渡されます。次のコードは、SinglePixelPackedSampleModel
sppsm1
によってストレージ・レイアウトが記述されているDataBufferdb1
から、SinglePixelPackedSampleModelsppsm2
によってストレージ・レイアウトが記述されているDataBufferdb2
へ、1ピクセルのデータを転送する例です。 通常、この転送はgetPixelとsetPixelを使うよりも効率的です。SinglePixelPackedSampleModel sppsm1, sppsm2; DataBufferInt db1, db2; sppsm2.setDataElements(x, y, sppsm1.getDataElements(x, y, null, db1), db2);
SampleModelのバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferTypeが同じである場合、2つのDataBuffer/SampleModel間の転送には、getDataElements/setDataElementsを使用するのが適切です。objがnullでない場合は、TransferType型のプリミティブ配列になります。 そうでない場合は、ClassCastExceptionがスローされます。 座標が境界内にない場合、またはobjがnullでなく、ピクセル・データを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。
- 定義:
getDataElements
、クラス:SampleModel
- パラメータ:
x
- ピクセル位置のX座標。y
- ピクセル位置のY座標。obj
- nullでない場合は、ピクセル・データが返されるプリミティブ配列。data
- イメージ・データを格納するDataBuffer。- 戻り値:
- 指定されたピクセルのデータ。
- 関連項目:
setDataElements(int, int, Object, DataBuffer)
-
getPixel
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
int配列の指定されたピクセルのすべてのサンプルを返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
getPixel
、クラス:SampleModel
- パラメータ:
x
- ピクセル位置のX座標。y
- ピクセル位置のY座標。iArray
- nullでない場合、この配列内のサンプルを返しますdata
- イメージ・データを格納するDataBuffer。- 戻り値:
- 指定されたピクセルのすべてのサンプル
- 関連項目:
setPixel(int, int, int[], DataBuffer)
-
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
int配列の指定されたピクセルの矩形のすべてのサンプルを返します。配列要素ごとに1つのサンプルが返されます。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
getPixels
、クラス:SampleModel
- パラメータ:
x
- 左上のピクセル位置のX座標。y
- 左上のピクセル位置のY座標。w
- ピクセル矩形の幅。h
- ピクセル矩形の高さ。iArray
- nullでない場合、この配列内のサンプルを返します。data
- イメージ・データを格納するDataBuffer。- 戻り値:
- 指定されたピクセル領域のサンプル
- 関連項目:
setPixels(int, int, int, int, int[], DataBuffer)
-
getSample
public int getSample(int x, int y, int b, DataBuffer data)
(x, y)に位置するピクセルの、指定されたバンド内のサンプルをintとして返します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- 定義:
getSample
、クラス:SampleModel
- パラメータ:
x
- ピクセル位置のX座標。y
- ピクセル位置のY座標。b
- 返されるバンド。data
- イメージ・データを格納するDataBuffer。- 戻り値:
- 指定されたピクセルに対する指定されたバンドのサンプル
- 関連項目:
setSample(int, int, int, int, DataBuffer)
-
getSamples
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
int配列の指定されたピクセルの矩形の、指定されたバンドのサンプルを返します。配列要素ごとに1つのサンプルが返されます。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
getSamples
、クラス:SampleModel
- パラメータ:
x
- 左上のピクセル位置のX座標。y
- 左上のピクセル位置のY座標。w
- ピクセル矩形の幅。h
- ピクセル矩形の高さ。b
- 返されるバンド。iArray
- nullでない場合、この配列内のサンプルを返します。data
- イメージ・データを格納するDataBuffer。- 戻り値:
- 指定されたピクセル領域の指定されたバンドのサンプル
- 関連項目:
setSamples(int, int, int, int, int, int[], DataBuffer)
-
setDataElements
public void setDataElements(int x, int y, Object obj, DataBuffer data)
指定されたDataBufferの1つのピクセルのデータを、TransferType型のプリミティブ配列から設定します。 SinglePixelPackedSampleModelの場合、配列の最初の要素だけが有効なデータを保持します。配列の型はSinglePixelPackedSampleModelのストレージ・データ型と同じである必要があります。次のコードは、SinglePixelPackedSampleModel
sppsm1
によってストレージ・レイアウトが記述されているDataBufferdb1
から、SinglePixelPackedSampleModelsppsm2
によってストレージ・レイアウトが記述されているDataBufferdb2
へ、1ピクセルのデータを転送する例です。 通常、この転送はgetPixelとsetPixelを使うよりも効率的です。SinglePixelPackedSampleModel sppsm1, sppsm2; DataBufferInt db1, db2; sppsm2.setDataElements(x, y, sppsm1.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)
-
setPixels
public void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
矩形のピクセルのサンプルすべてを、配列要素ごとに1つのサンプルが格納されているint配列から設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
setPixels
、クラス:SampleModel
- パラメータ:
x
- 左上のピクセル位置のX座標。y
- 左上のピクセル位置のY座標。w
- ピクセル矩形の幅。h
- ピクセル矩形の高さ。iArray
- int配列形式の入力サンプル。data
- イメージ・データを格納するDataBuffer。- 関連項目:
getPixels(int, 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
- 設定されるバンド。s
- intの入力サンプル。data
- イメージ・データを格納するDataBuffer。- 関連項目:
getSample(int, int, int, DataBuffer)
-
setSamples
public void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
指定された矩形ピクセルの指定されたバンドのサンプルを、配列要素ごとに1つのサンプルが格納されているint配列から設定します。 座標が境界内にない場合は、ArrayIndexOutOfBoundsExceptionがスローされます。- オーバーライド:
setSamples
、クラス:SampleModel
- パラメータ:
x
- 左上のピクセル位置のX座標。y
- 左上のピクセル位置のY座標。w
- ピクセル矩形の幅。h
- ピクセル矩形の高さ。b
- 設定されるバンド。iArray
- int配列形式の入力サンプル。data
- イメージ・データを格納するDataBuffer。- 関連項目:
getSamples(int, int, int, int, int, int[], DataBuffer)
-
-