|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.image.SampleModel | +--java.awt.image.ComponentSampleModel
このクラスは、DataBuffer のデータ要素 1 つに 1 つずつピクセルを形成する各サンプルが格納されているイメージデータを表します。DataBuffer は、1 ピクセルを形成する N 個のサンプルを、N 個の別個のデータ配列要素に格納します。異なるバンドはそれぞれ、DataBuffer の別のバンクに格納されている場合があります。イメージデータを直接操作できるように、アクセス用の各メソッドが提供されています。このクラスは、各種のインタリーブをサポートできます。たとえば、バンドインタリーブ、走査線インタリーブ、およびピクセルインタリーブです。ピクセルストライドは、同じ走査線の同じバンドに対する 2 つのサンプル間の、データ配列要素数です。走査線ストライドは、任意のサンプルと、それと対応する、次の走査線の同じ列にあるサンプル間のデータ配列要素数です。バンドのオフセットは、各バンドを格納している DataBuffer のバンクにある最初のデータ配列要素から、バンドの最初のサンプルまでにある、データ配列要素数を表します。バンドには 0 から N-1 までの番号がつけられています。このクラスは、8 ビット、16 ビット、または 32 ビットで格納できる積分値を各サンプルに持つイメージデータを表すことができます。このとき、指定された ComponentSampleModel のすべてのサンプルも、同じ精度で格納されます。すべてのストライド、およびオフセットは、負でない数値とする必要があります。このクラスは TYPE_BYTE
、TYPE_USHORT
、TYPE_SHORT
、および TYPE_INT
をサポートします。
PixelInterleavedSampleModel
,
BandedSampleModel
フィールドの概要 | |
protected int[] |
bandOffsets
データ配列要素にあるすべてのバンドのオフセットです。 |
protected int[] |
bankIndices
イメージデータのバンドを格納する各バンクのインデックスです。 |
protected int |
numBands
この ComponentSampleModel 内のバンド数です。 |
protected int |
numBanks
この ComponentSampleModel 内のバンク数です。 |
protected int |
pixelStride
この ComponentSampleModel で記述されるイメージデータ領域 (データ配列要素) のピクセルストライドです。 |
protected int |
scanlineStride
この ComponentSampleModel で記述されるイメージデータ領域 (データ配列要素) の走査線ストライドです。 |
クラス java.awt.image.SampleModel から継承したフィールド |
dataType, height, width |
コンストラクタの概要 | |
ComponentSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bandOffsets)
指定されたパラメータで、ComponentSampleModel を構築します。 |
|
ComponentSampleModel(int dataType,
int w,
int h,
int pixelStride,
int scanlineStride,
int[] bankIndices,
int[] bandOffsets)
指定されたパラメータで、ComponentSampleModel を構築します。 |
メソッドの概要 | |
SampleModel |
createCompatibleSampleModel(int w,
int h)
指定された幅および高さで、新しい ComponentSampleModel を構築します。 |
DataBuffer |
createDataBuffer()
この ComponentSampleModel と対応する DataBuffer を作成します。 |
SampleModel |
createSubsetSampleModel(int[] bands)
この ComponentSampleModel のサブセットを持つ、新しい ComponentSampleModel を構築します。 |
int[] |
getBandOffsets()
すべてのバンドについて、バンドのオフセットを返します。 |
int[] |
getBankIndices()
すべてのバンクについて、バンクのインデックスを返します。 |
Object |
getDataElements(int x,
int y,
Object obj,
DataBuffer data)
1 ピクセルのデータを transferType 型のプリミティブ配列として返します。 |
int |
getNumDataElements()
getDataElements メソッドおよび setDataElements メソッドでピクセルを転送するのに必要なデータ要素数を返します。 |
int |
getOffset(int x,
int y)
ピクセル (x,y) の最初のバンドのオフセットを返します。 |
int |
getOffset(int x,
int y,
int b)
ピクセル (x,y) のバンド b のオフセットを返します。 |
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 |
getPixelStride()
この ComponentSampleModel のピクセルストライドを返します。 |
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[] |
getSampleSize()
すべてのバンドのサンプル当りのビット数を返します。 |
int |
getSampleSize(int band)
指定されたバンドのサンプル当りのビット数を返します。 |
int |
getScanlineStride()
この ComponentSampleModel の走査線ストライドを返します。 |
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,
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.SampleModel から継承したメソッド |
getDataElements, getDataType, getHeight, getNumBands, getPixel, getPixel, getPixels, getPixels, getSamples, getSamples, getTransferType, getWidth, setDataElements, setPixel, setPixel, setPixels, setPixels, setSamples, setSamples |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
protected int[] bandOffsets
protected int[] bankIndices
protected int numBands
ComponentSampleModel
内のバンド数です。protected int numBanks
ComponentSampleModel
内のバンク数です。protected int scanlineStride
protected int pixelStride
コンストラクタの詳細 |
public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bandOffsets)
dataType
- サンプルの格納のためのデータタイプw
- 記述されるイメージデータの領域の幅 (ピクセル数)h
- 記述されるイメージデータの領域の高さ (ピクセル数)pixelStride
- 記述されたイメージデータの領域のピクセルストライドscanlineStride
- 記述されたイメージデータの領域の走査線ストライドbandOffsets
- すべてのバンドのオフセットIllegalArgumentException
- w
または h
が 0 以下の場合IllegalArgumentException
- pixelStride
が 0 未満の場合IllegalArgumentException
- scanlineStride
が 0 未満の場合IllegalArgumentException
- numBands
が 1 未満の場合IllegalArgumentException
- w
と h
の積が Integer.MAX_VALUE
より大きい場合IllegalArgumentException
- dataType
がサポートされていない場合public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, int[] bankIndices, int[] bandOffsets)
dataType
- サンプルの格納のためのデータタイプw
- 記述されるイメージデータの領域の幅 (ピクセル数)h
- 記述されるイメージデータの領域の高さ (ピクセル数)pixelStride
- 記述されたイメージデータの領域のピクセルストライドscanlineStride
- 記述されたイメージデータの領域の走査線ストライドbankIndices
- すべてのバンドのバンクインデックスbandOffsets
- すべてのバンドのバンドオフセットIllegalArgumentException
- w
または h
が 0 以下の場合IllegalArgumentException
- pixelStride
が 0 未満の場合IllegalArgumentException
- scanlineStride
が 0 未満の場合IllegalArgumentException
- bankIndices
の長さが bankOffsets
の長さと等しくない場合IllegalArgumentException
- bankIndices
のバンクインデックスのどれかがゼロより小さい場合メソッドの詳細 |
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
内の createCompatibleSampleModel
w
- 結果として返された SampleModel
の幅h
- 結果として返された SampleModel
の高さIllegalArgumentException
- w
または h
が 0 以下の場合public SampleModel createSubsetSampleModel(int[] bands)
SampleModel
内の createSubsetSampleModel
public DataBuffer createDataBuffer()
SampleModel
内の createDataBuffer
public int getOffset(int x, int y)
data
から、ComponentSampleModel csm
を使って次のようにして取得できます。
data.getElem(csm.getOffset(x, y));
public int getOffset(int x, int y, int b)
b
のサンプルは、DataBuffer data
から、ComponentSampleModel csm
を使って次のようにして取得できます。
data.getElem(csm.getOffset(x, y, b));
public final int[] getSampleSize()
SampleModel
内の getSampleSize
public final int getSampleSize(int band)
SampleModel
内の getSampleSize
public final int[] getBankIndices()
public final int[] getBandOffsets()
public final int getScanlineStride()
public final int getPixelStride()
public final int getNumDataElements()
SampleModel
内の getNumDataElements
SampleModel.getNumDataElements()
public Object getDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、ComponentSampleModel csm1
によってストレージレイアウトが記述されている DataBuffer db1
から、ComponentSampleModel csm2
によって、ストレージレイアウトが記述されている DataBuffer db2
へ、1 ピクセルのデータを転送する例です。この転送方法は getPixel と setPixel を使う方法よりも効率的です。
ComponentSampleModel csm1, csm2; DataBufferInt db1, db2; csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドのサンプル当りのビット数が同じで、transferType が同じである場合、2 つの DataBuffer/SampleModel のペアの間で転送するときは、getDataElements/setDataElements を使用するのが適切です。
obj が null でない場合は、transferType 型のプリミティブ配列になります。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj が null でなく、ピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることもあります。
SampleModel
内の getDataElements
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標obj
- null でない場合は、返されたピクセルデータの入るプリミティブ配列data
- イメージデータが格納されている DataBufferpublic int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
SampleModel
内の getPixel
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標iArray
- null でない場合、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
SampleModel
内の getPixels
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- null でない場合、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic int getSample(int x, int y, int b, DataBuffer data)
SampleModel
内の getSample
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返されるバンドdata
- イメージデータが格納されている DataBufferpublic float getSampleFloat(int x, int y, int b, DataBuffer data)
SampleModel
内の getSampleFloat
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返されるバンドdata
- イメージデータが格納されている DataBufferpublic double getSampleDouble(int x, int y, int b, DataBuffer data)
SampleModel
内の getSampleDouble
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返されるバンドdata
- イメージデータが格納されている DataBufferpublic int[] getSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
SampleModel
内の getSamples
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 返されるバンドiArray
- null でない場合、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic void setDataElements(int x, int y, Object obj, DataBuffer data)
次のコードは、ComponentSampleModel csm1
によってストレージレイアウトが記述されている DataBuffer db1
から、ComponentSampleModel csm2
によって、ストレージレイアウトが記述されている DataBuffer db2
へ、1 ピクセルのデータを転送する例です。この転送方法は getPixel と setPixel を使う方法よりも効率的です。
ComponentSampleModel csm1, csm2; DataBufferInt db1, db2; csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドのサンプル当りのビット数が同じで、transferType が同じである場合、2 つの DataBuffer/SampleModel のペアの間で転送するときは、getDataElements/setDataElements を使用するのが適切です。
obj は transferType 型のプリミティブ配列でなければなりません。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj がピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
SampleModel
内の setDataElements
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標obj
- ピクセルデータを格納するプリミティブ配列data
- イメージデータが格納されている DataBufferpublic void setPixel(int x, int y, int[] iArray, DataBuffer data)
SampleModel
内の setPixel
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標iArray
- int 配列にある入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
SampleModel
内の setPixels
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- int 配列にある入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSample(int x, int y, int b, int s, DataBuffer data)
SampleModel
内の setSample
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 設定されるバンドs
- int での入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSample(int x, int y, int b, float s, DataBuffer data)
SampleModel
内の setSample
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 設定されるバンドs
- float での入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSample(int x, int y, int b, double s, DataBuffer data)
SampleModel
内の setSample
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 設定されるバンドs
- double での入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSamples(int x, int y, int w, int h, int b, int[] iArray, DataBuffer data)
SampleModel
内の setSamples
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 設定されるバンドiArray
- int 配列にある入力サンプルdata
- イメージデータが格納されている DataBuffer
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.