|
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 内の createCompatibleSampleModelw - 結果として返された SampleModel の幅h - 結果として返された SampleModel の高さIllegalArgumentException - w または h が 0 以下の場合public SampleModel createSubsetSampleModel(int[] bands)
SampleModel 内の createSubsetSampleModelpublic 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 内の getSampleSizepublic final int getSampleSize(int band)
SampleModel 内の getSampleSizepublic final int[] getBankIndices()
public final int[] getBandOffsets()
public final int getScanlineStride()
public final int getPixelStride()
public final int getNumDataElements()
SampleModel 内の getNumDataElementsSampleModel.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 内の getDataElementsx - ピクセル位置の X 座標y - ピクセル位置の Y 座標obj - null でない場合は、返されたピクセルデータの入るプリミティブ配列data - イメージデータが格納されている DataBuffer
public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
SampleModel 内の getPixelx - ピクセル位置の X 座標y - ピクセル位置の Y 座標iArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public int[] getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
SampleModel 内の getPixelsx - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さiArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public int getSample(int x,
int y,
int b,
DataBuffer data)
SampleModel 内の getSamplex - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 返されるバンドdata - イメージデータが格納されている DataBuffer
public float getSampleFloat(int x,
int y,
int b,
DataBuffer data)
SampleModel 内の getSampleFloatx - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 返されるバンドdata - イメージデータが格納されている DataBuffer
public double getSampleDouble(int x,
int y,
int b,
DataBuffer data)
SampleModel 内の getSampleDoublex - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 返されるバンドdata - イメージデータが格納されている DataBuffer
public int[] getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
SampleModel 内の getSamplesx - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 返されるバンドiArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public 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 内の setDataElementsx - ピクセル位置の X 座標y - ピクセル位置の Y 座標obj - ピクセルデータを格納するプリミティブ配列data - イメージデータが格納されている DataBuffer
public void setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
SampleModel 内の setPixelx - ピクセル位置の X 座標y - ピクセル位置の Y 座標iArray - int 配列にある入力サンプルdata - イメージデータが格納されている DataBuffer
public void setPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
SampleModel 内の setPixelsx - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さiArray - int 配列にある入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSample(int x,
int y,
int b,
int s,
DataBuffer data)
SampleModel 内の setSamplex - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 設定されるバンドs - int での入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSample(int x,
int y,
int b,
float s,
DataBuffer data)
SampleModel 内の setSamplex - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 設定されるバンドs - float での入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSample(int x,
int y,
int b,
double s,
DataBuffer data)
SampleModel 内の setSamplex - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 設定されるバンドs - double での入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
SampleModel 内の setSamplesx - 左上のピクセル位置の 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.