|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object
|
+--java.awt.image.SampleModel
|
+--java.awt.image.ComponentSampleModel
|
+--java.awt.image.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 型のプリミティブ配列として返します。 |
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 にある単一ピクセルのデータを設定します。 |
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 内の createCompatibleSampleModelw - 結果として返された BandedSampleModel の幅h - 結果として返された BandedSampleModel の高さ
BandedSampleModel
IllegalArgumentException - w または h が、Integer.MAX_VALUE または Integer.MIN_VALUE のどちらかと同じ場合
IllegalArgumentException - dataType がサポートされていない場合public SampleModel createSubsetSampleModel(int[] bands)
ComponentSampleModel 内の createSubsetSampleModelbands - この ComponentSampleModel のバンドのサブセット
ComponentSampleModel のバンドのサブセットで作成された ComponentSampleModel
RasterFormatException - バンド数がこのサンプルモデル内のバンク数より多い場合
IllegalArgumentException - dataType がサポートされていない場合public DataBuffer createDataBuffer()
ComponentSampleModel 内の createDataBufferComponentSampleModel とデータ型、バンク数、およびサイズが同じ 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 内の getDataElementsobj - null でない場合は、返されたピクセルデータの入るプリミティブ配列data - イメージデータが格納されている DataBuffer
setDataElements(int, int, Object, DataBuffer)
public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
ComponentSampleModel 内の getPixeliArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
setPixel(int, int, int[], DataBuffer)
public int[] getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
ComponentSampleModel 内の getPixelsw - ピクセル矩形の幅h - ピクセル矩形の高さiArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
setPixels(int, int, int, int, int[], DataBuffer)
public int getSample(int x,
int y,
int b,
DataBuffer data)
ComponentSampleModel 内の getSampleb - 返されるバンドdata - イメージデータが格納されている DataBuffer
setSample(int, int, int, int, DataBuffer)
public float getSampleFloat(int x,
int y,
int b,
DataBuffer data)
ComponentSampleModel 内の getSampleFloatb - 返されるバンドdata - イメージデータが格納されている DataBuffer
public double getSampleDouble(int x,
int y,
int b,
DataBuffer data)
ComponentSampleModel 内の getSampleDoubleb - 返されるバンドdata - イメージデータが格納されている DataBuffer
public int[] getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
ComponentSampleModel 内の getSamplesw - ピクセル矩形の幅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 内の setDataElementsobj - null でない場合は、このオブジェクト内のプリミティブ配列を返すdata - イメージデータが格納されている DataBuffergetDataElements(int, int, Object, DataBuffer)
public void setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
ComponentSampleModel 内の setPixeliArray - int 配列内の入力サンプルdata - イメージデータが格納されている DataBuffergetPixel(int, int, int[], DataBuffer)
public void setPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
ComponentSampleModel 内の setPixelsw - ピクセル矩形の幅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 内の setSampleb - 設定されるバンドs - int での入力サンプルdata - イメージデータが格納されている DataBuffergetSample(int, int, int, DataBuffer)
public void setSample(int x,
int y,
int b,
float s,
DataBuffer data)
ComponentSampleModel 内の setSampleb - 設定されるバンドs - float での入力サンプルdata - イメージデータが格納されている DataBuffergetSample(int, int, int, DataBuffer)
public void setSample(int x,
int y,
int b,
double s,
DataBuffer data)
ComponentSampleModel 内の setSampleb - 設定されるバンド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 内の setSamplesw - ピクセル矩形の幅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 内の hashCodeObject.equals(java.lang.Object),
Hashtable
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.