|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.image.SampleModel java.awt.image.ComponentSampleModel java.awt.image.BandedSampleModel
public final class BandedSampleModel
このクラスは、バンドインタリーブ化方式で格納されるイメージデータを表します。 ピクセルの各サンプルは、DataBuffer のデータ要素に 1 つずつ格納されます。このクラスは ComponentSampleModel をサブクラス化しますが、ComponentSampleModel と比べて、バンドインタリーブ化方式のイメージデータにアクセスするより効率的な実装を提供できます。通常、このクラスは、各バンドのサンプルデータを DataBuffer の別々のバンクに格納したイメージを処理する場合に使用されます。イメージデータを直接処理できるように、アクセス用メソッドが提供されています。ピクセルストライドは、同じ走査線上の同じバンドにある 2 つのサンプルの間にあるデータ配列要素数です。BandedSampleModel のピクセルストライドはその 1 つです。走査線ストライドは、指定されたサンプルと次の走査線の同じ列の対応するサンプルとの間のデータ配列要素の数です。バンドオフセットは、各バンドが格納されている DataBuffer のバンクにある最初のデータ配列要素からそのバンドの最初のサンプルまでのデータ配列要素数を示します。バンドには、0 〜 N-1 の範囲の番号が付けられています。 バンクインデックスは、データバッファーのバンクと、イメージデータのバンドとの対応を示します。このクラスは、TYPE_BYTE
、TYPE_USHORT
、TYPE_SHORT
、TYPE_INT
、TYPE_FLOAT
、および TYPE_DOUBLE
のデータ形式をサポートします。
フィールドの概要 |
---|
クラス java.awt.image.ComponentSampleModel から継承されたフィールド |
---|
bandOffsets, bankIndices, numBands, numBanks, pixelStride, scanlineStride |
クラス java.awt.image.SampleModel から継承されたフィールド |
---|
dataType, height, width |
コンストラクタの概要 | |
---|---|
BandedSampleModel(int dataType,
int w,
int h,
int numBands)
指定されたパラメータを使って BandedSampleModel を構築します。 |
|
BandedSampleModel(int dataType,
int w,
int h,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets)
指定されたパラメータを使って BandedSampleModel を構築します。 |
メソッドの概要 | |
---|---|
SampleModel |
createCompatibleSampleModel(int w,
int h)
指定された幅と高さを持つ新しい BandedSampleModel を作成します。 |
DataBuffer |
createDataBuffer()
この BandedSampleModel に対応する DataBuffer を作成します。 |
SampleModel |
createSubsetSampleModel(int[] bands)
この BandedSampleModel のバンドのサブセットを持つ新しい BandedSampleModel を作成します。 |
Object |
getDataElements(int x,
int y,
Object obj,
DataBuffer data)
transferType 型のプリミティブ配列内の 1 つのピクセルのデータを返します。 |
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 配列として返します。 |
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 配列として返します。 |
int |
hashCode()
オブジェクトのハッシュコード値を返します。 |
void |
setDataElements(int x,
int y,
Object obj,
DataBuffer data)
TransferType 型のプリミティブ配列からの、指定した DataBuffer 内の 1 つのピクセルのデータを設定します。 |
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 配列から、指定されたピクセル矩形の、指定されたバンドにサンプルを設定します。 |
クラス java.awt.image.ComponentSampleModel から継承されたメソッド |
---|
equals, getBandOffsets, getBankIndices, getNumDataElements, getOffset, getOffset, getPixelStride, getSampleSize, getSampleSize, getScanlineStride |
クラス java.awt.image.SampleModel から継承されたメソッド |
---|
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public BandedSampleModel(int dataType, int w, int h, int numBands)
dataType
- サンプルの格納のためのデータ型w
- 記述されるイメージデータの領域の幅
(ピクセル単位)h
- 記述されるイメージデータの領域の高さ
(ピクセル単位)numBands
- イメージデータのバンド数
IllegalArgumentException
- dataType
がサポートされている
データ型でない場合public BandedSampleModel(int dataType, int w, int h, int scanlineStride, int[] bankIndices, int[] bandOffsets)
dataType
- サンプルの格納のためのデータ型w
- 記述されるイメージデータの領域の幅
(ピクセル単位)h
- 記述されるイメージデータの領域の高さ
(ピクセル単位)scanlineStride
- イメージデータの走査線ストライドbankIndices
- 各バンドのバンクインデックスbandOffsets
- 各バンドのバンドオフセット
IllegalArgumentException
- dataType
がサポートされている
データ型でない場合メソッドの詳細 |
---|
public SampleModel createCompatibleSampleModel(int w, int h)
ComponentSampleModel
内の createCompatibleSampleModel
w
- 結果として返された BandedSampleModel
の幅h
- 結果として返された BandedSampleModel
の高さ
BandedSampleModel
IllegalArgumentException
- w
または
h
が
Integer.MAX_VALUE
または
Integer.MIN_VALUE
と等しい場合
IllegalArgumentException
- dataType
がサポートされている
データ型でない場合public SampleModel createSubsetSampleModel(int[] bands)
ComponentSampleModel
内の createSubsetSampleModel
bands
- この ComponentSampleModel
の
バンドのサブセット
ComponentSampleModel
のバンドのサブセットで
作成された ComponentSampleModel
RasterFormatException
- バンド数がこのサンプルモデル内の
バンク数より多い場合
IllegalArgumentException
- dataType
がサポートされている
データ型でない場合public DataBuffer createDataBuffer()
ComponentSampleModel
内の createDataBuffer
ComponentSampleModel
と
データ型、バンク数、およびサイズが同じ
DataBuffer
IllegalArgumentException
- dataType
がサポートされている
型でない場合public Object getDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、BandedSampleModel bsm1
によってストレージレイアウトが記述されている DataBuffer db1
から、BandedSampleModel bsm2
によってストレージレイアウトが記述されている DataBuffer db2
へ、データを転送する例です。通常、この転送は getPixel と setPixel を使うよりも効率的です。
BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferType が同じである場合、2 つの DataBuffer/SampleModel 間の転送には、getDataElements/setDataElements を使用するのが適切です。
obj が null でない場合は、TransferType 型のプリミティブ配列になります。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj が null でなく、ピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされます。
ComponentSampleModel
内の getDataElements
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標obj
- null でない場合は、ピクセルデータが返される
プリミティブ配列data
- イメージデータを格納する DataBuffer
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
ComponentSampleModel
内の getPixel
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標iArray
- null でない場合、この配列内のサンプルを返すdata
- イメージデータを格納する DataBuffer
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
ComponentSampleModel
内の getPixels
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- null でない場合、この配列内のサンプルを返すdata
- イメージデータを格納する DataBuffer
setPixels(int, int, int, int, int[], DataBuffer)
public int getSample(int x, int y, int b, DataBuffer data)
ComponentSampleModel
内の getSample
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返されるバンドdata
- イメージデータを格納する DataBuffer
setSample(int, int, int, int, DataBuffer)
public float getSampleFloat(int x, int y, int b, DataBuffer data)
ComponentSampleModel
内の getSampleFloat
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返されるバンドdata
- イメージデータを格納する DataBuffer
public double getSampleDouble(int x, int y, int b, DataBuffer data)
ComponentSampleModel
内の getSampleDouble
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返されるバンドdata
- イメージデータを格納する DataBuffer
public int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
ComponentSampleModel
内の getSamples
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 返されるバンドiArray
- null でない場合、この配列内のサンプルを返すdata
- イメージデータを格納する DataBuffer
setSamples(int, int, int, int, int, int[], DataBuffer)
public void setDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、BandedSampleModel bsm1
によってストレージレイアウトが記述されている DataBuffer db1
から、BandedSampleModel bsm2
によってストレージレイアウトが記述されている DataBuffer db2
へ、データを転送する例です。通常、この転送は getPixel と setPixel を使うよりも効率的です。
BandedSampleModel bsm1, bsm2; DataBufferInt db1, db2; bsm2.setDataElements(x, y, bsm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドのサンプルあたりのビット数が同じで、TransferType が同じである場合、2 つの DataBuffer/SampleModel 間の転送には、getDataElements/setDataElements を使用するのが適切です。
obj は TransferType 型のプリミティブ配列でなければなりません。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj がピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされます。
ComponentSampleModel
内の setDataElements
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標obj
- null でない場合は、このオブジェクト内のプリミティブ配列を
返すdata
- イメージデータを格納する DataBuffergetDataElements(int, int, Object, DataBuffer)
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
ComponentSampleModel
内の setPixel
x
- ピクセル位置の 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)
ComponentSampleModel
内の setPixels
x
- 左上のピクセル位置の 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)
ComponentSampleModel
内の setSample
x
- ピクセル位置の 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)
ComponentSampleModel
内の setSample
x
- ピクセル位置の 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)
ComponentSampleModel
内の setSample
x
- ピクセル位置の 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)
ComponentSampleModel
内の setSamples
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 設定対象のバンドiArray
- 入力サンプル配列data
- イメージデータを格納する DataBuffergetSamples(int, int, int, int, int, int[], DataBuffer)
public int hashCode()
Object
の記述:java.util.Hashtable
によって提供されるようなハッシュテーブルで使用するために用意されています。
hashCode
メソッドの一般的な規則を次に示します。
hashCode
メソッドを呼び出しても結果は同じ整数値にならなければならない
Object.equals(java.lang.Object)
メソッドで 2 つのオブジェクトが等価でないとされた場合は、これらのオブジェクトに対して hashCode メソッドを呼び出したときに、結果が異なる整数値にならなくてもかまわない。しかし、等しくないオブジェクトについては異なる整数値が生成されるようにすれば、ハッシュテーブルのパフォーマンスを上げることができる
できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されますが、そのような実装テクニックは JavaTM プログラミング言語では不要です。
ComponentSampleModel
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。