- java.lang.Object
-
- ava.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
を構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 SampleModel
createCompatibleSampleModel(int w, int h)
指定された幅と高さを持つ新しいMultiPixelPackedSampleModel
を作成します。DataBuffer
createDataBuffer()
このMultiPixelPackedSampleModel
に対応するDataBuffer
を作成します。SampleModel
createSubsetSampleModel(int[] bands)
このMultiPixelPackedSampleModel
のバンドのサブセットを持つ新しいMultiPixelPackedSampleModel
を生成します。boolean
equals(Object o)
このオブジェクトと他のオブジェクトが等しいかどうかを示します。int
getBitOffset(int x)
走査線のx
番目のピクセルとして格納されているデータ要素のオフセットをビット数で返します。int
getDataBitOffset()
データ・ビット・オフセットをビット数で返します。Object
getDataElements(int x, int y, Object obj, DataBuffer data)
transferType型のプリミティブ配列内の1つのピクセルのデータを返します。int
getNumDataElements()
getDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
メソッドおよびsetDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
メソッドを使って1ピクセル転送するのに必要なデータ要素の数を返します。int
getOffset(int x, int y)
ピクセル(x, y)のデータ配列要素でのオフセットを返します。int[]
getPixel(int x, int y, int[] iArray, DataBuffer data)
int
配列の先頭要素の、指定された1つのバンドのピクセルを返します。int
getPixelBitStride()
ピクセル・ビット・ストライドをビット数で返します。int
getSample(int x, int y, int b, DataBuffer data)
(x, y)に位置するピクセルの、指定されたバンド内のサンプルをint
として返します。int[]
getSampleSize()
すべてのバンドのサンプルあたりのビット数を返します。int
getSampleSize(int band)
指定されたバンドのサンプルあたりのビット数を返します。int
getScanlineStride()
走査線ストライドを返します。int
getTransferType()
getDataElements
メソッドとsetDataElements
メソッドによりピクセルを転送するために使うTransferTypeを返します。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
setSample(int x, int y, int b, int s, DataBuffer data)
int
を入力とし、DataBuffer
の(x, y)に位置するピクセルの、指定されたバンドのサンプルを設定します。-
クラス java.lang.Objectから継承されたメソッド
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
クラス 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
は自動的に作成され、正しい基本データ型になります。次のコードは、
MultiPixelPackedSampleModel
mppsm1
によってストレージ・レイアウトが記述されている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
返されるピクセルが格納される配列、またはnull
data
- イメージ・データの格納先の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のうちの最小のものになります。次のコードは、
MultiPixelPackedSampleModel
mppsm1
によってストレージ・レイアウトが記述されている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)
-
equals
public boolean equals(Object o)
次のクラスからコピーされた説明:Object
このオブジェクトと他のオブジェクトが等しいかどうかを示します。equals
メソッドは、null以外のオブジェクト参照での同値関係を実装します。- 反射性(reflexive): null以外の参照値
x
について、x.equals(x)
はtrue
を返します。 - 対称性(symmetric): null以外の参照値
x
およびy
について、y.equals(x)
がtrue
を返す場合に限り、x.equals(y)
はtrue
を返します。 - 推移性(transitive): null以外の参照値
x
、y
、およびz
について、x.equals(y)
がtrue
を返し、y.equals(z)
がtrue
を返す場合、x.equals(z)
はtrue
を返します。 - 一貫性(consistent): null以外の参照値
x
およびy
について、x.equals(y)
の複数の呼出しは、このオブジェクトに対するequals
による比較で使われた情報が変更されていなければ、一貫してtrue
を返すか、一貫してfalse
を返します。 - null以外の参照値
x
について、x.equals(null)
はfalse
を返します。
Object
クラスのequals
メソッドは、もっとも比較しやすいオブジェクトの同値関係を実装します。つまり、null以外の参照値x
とy
について、このメソッドはx
とy
が同じオブジェクトを参照する(x == y
がtrue
)場合にだけtrue
を返します。通常、このメソッドをオーバーライドする場合は、
hashCode
メソッドを常にオーバーライドして、「等価なオブジェクトは等価なハッシュ・コードを保持する必要がある」というhashCode
メソッドの汎用規約に従う必要があることに留意してください。- オーバーライド:
equals
、クラス:Object
- パラメータ:
o
- 比較対象の参照オブジェクト。- 戻り値:
- このオブジェクトがobj引数と同じである場合は
true
、それ以外の場合はfalse
。 - 関連項目:
Object.hashCode()
、HashMap
- 反射性(reflexive): null以外の参照値
-
hashCode
public int hashCode()
次のクラスからコピーされた説明:Object
オブジェクトのハッシュ・コード値を返します。 このメソッドは、HashMap
によって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。hashCode
の一般的な規則は次のとおりです。- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
equals
の比較で使用される情報が変更されていなければ、hashCode
メソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。 equals(Object)
メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって同じ整数の結果が生成される必要があります。Object.equals(java.lang.Object)
メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって異なる整数の結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。
クラス
Object
によって定義されたhashCodeメソッドは、可能なかぎり、異なるオブジェクトに対して異なる整数を返します。 (hashCodeは、ある時点におけるオブジェクト・メモリー・アドレスの関数として実装されても実装されなくてもよい。)- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
-
-