|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--java.awt.image.SampleModel
この抽象クラスは、イメージにあるピクセルのサンプルを抽出するインタフェースを定義します。イメージデータはすべて、ピクセルのコレクションとして表現されます。各ピクセルは多数のサンプルから成り立っています。サンプルとはイメージの 1 バンドのデータで、バンドはイメージにある特定のタイプのすべてのサンプルから成り立っています。たとえばピクセルが、赤色成分、緑色成分、青色成分を表す 3 つのサンプルを含んでいるとします。このピクセルを含むイメージには 3 つのバンドがあります。1 つのバンドはイメージのすべてのピクセルのすべての赤色サンプルから成り立っています。2 つ目のバンドはすべての緑色サンプルから成り立ち、残りのバンドはすべての青色サンプルから成り立っています。ピクセルはさまざまな形式で格納できます。たとえば、特定のバンドのすべてのサンプルを連続して格納したり、単一のピクセルのすべてのサンプルを連続して格納したりできます。Java 2D(tm) API では、すべての組み込みイメージ処理および表示演算子が、符号なし整数値を表すサンプルを処理します。
ピクセルの集まりは、DataBuffer と SampleModel からなる Raster として表されます。SampleModel を使うと、DataBuffer 内のサンプルにアクセスできます。また、DataBuffer でサンプルおよびピクセルを直接操作するためにプログラマが使用できる低レベルの情報を提供します。
このクラスは、一般にはイメージ処理のためのフォールバックメソッドです。より効果的にコードを記述すれば、適切なサブクラスに SampleModel をキャストして、DataBuffer のピクセルを直接操作するために必要な情報を取り出すこともできます。
DataBuffer,
Raster,
ComponentSampleModel,
PixelInterleavedSampleModel,
BandedSampleModel,
MultiPixelPackedSampleModel,
SinglePixelPackedSampleModel| フィールドの概要 | |
protected int |
dataType
ピクセルデータを格納する DataBuffer のデータタイプです。 |
protected int |
height
この SampleModel が記述するイメージデータの領域の高さ (ピクセル数) です。 |
protected int |
numBands
この SampleModel が記述するイメージデータのバンド数です。 |
protected int |
width
この SampleModel が記述するイメージデータの領域の幅 (ピクセル数) です。 |
| コンストラクタの概要 | |
SampleModel(int dataType,
int w,
int h,
int numBands)
指定されたパラメータを使って SampleModel を構築します。 |
|
| メソッドの概要 | |
abstract SampleModel |
createCompatibleSampleModel(int w,
int h)
この SampleModel の形式でデータが記述されている、幅と高さが異なる SampleModel を作成します。 |
abstract DataBuffer |
createDataBuffer()
この SampleModel に対応する DataBuffer を作成します。 |
abstract SampleModel |
createSubsetSampleModel(int[] bands)
この SampleModel のバンドのサブセットを使って新しい SampleModel を作成します。 |
Object |
getDataElements(int x,
int y,
int w,
int h,
Object obj,
DataBuffer data)
transferType 型のプリミティブ配列の、指定されたピクセル矩形のピクセルデータを返します。 |
abstract Object |
getDataElements(int x,
int y,
Object obj,
DataBuffer data)
transferType 型のプリミティブ配列内の 1 つのピクセルのデータを返します。 |
int |
getDataType()
ピクセルデータが格納されている DataBuffer のデータタイプを返します。 |
int |
getHeight()
高さをピクセル数で返します。 |
int |
getNumBands()
イメージデータのバンドの総数を返します。 |
abstract int |
getNumDataElements()
getDataElements メソッドおよび setDataElements メソッドを使ってピクセルを転送するときに必要なデータ要素の数を返します。 |
double[] |
getPixel(int x,
int y,
double[] dArray,
DataBuffer data)
double の配列内の指定されたピクセルのサンプルを返します。 |
float[] |
getPixel(int x,
int y,
float[] fArray,
DataBuffer data)
float の配列内の指定されたピクセルのサンプルを返します。 |
int[] |
getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
int 配列内の指定されたピクセルのサンプルを返します。 |
double[] |
getPixels(int x,
int y,
int w,
int h,
double[] dArray,
DataBuffer data)
double 配列のピクセル矩形のすべてのサンプルを返します。 |
float[] |
getPixels(int x,
int y,
int w,
int h,
float[] fArray,
DataBuffer data)
float 配列のピクセル矩形のすべてのサンプルを返します。 |
int[] |
getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
int 配列のピクセル矩形のすべてのサンプルを返します。 |
abstract 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 として返します。 |
double[] |
getSamples(int x,
int y,
int w,
int h,
int b,
double[] dArray,
DataBuffer data)
double 配列内の指定されたピクセル矩形の、指定されたバンドのサンプルを返します。 |
float[] |
getSamples(int x,
int y,
int w,
int h,
int b,
float[] fArray,
DataBuffer data)
float 配列内の指定されたピクセル矩形の、指定されたバンドのサンプルを返します。 |
int[] |
getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
int 配列の指定されたピクセルの矩形の、指定されたバンドのサンプルを返します。 |
abstract int[] |
getSampleSize()
すべてのバンドについて、サンプルのビットのサイズを返します。 |
abstract int |
getSampleSize(int band)
指定されたバンドについて、サンプルのビットのサイズを返します。 |
int |
getTransferType()
getDataElements メソッドおよび setDataElements メソッドを使ってピクセルを転送するときに使用される transferType を返します。 |
int |
getWidth()
幅をピクセル数で返します。 |
void |
setDataElements(int x,
int y,
int w,
int h,
Object obj,
DataBuffer data)
transferType 型のプリミティブ配列からの、指定された DataBuffer 内のピクセルの矩形のデータを設定します。 |
abstract void |
setDataElements(int x,
int y,
Object obj,
DataBuffer data)
transferType 型のプリミティブ配列からの、指定された DataBuffer 内の 1 つのピクセルのデータを設定します。 |
void |
setPixel(int x,
int y,
double[] dArray,
DataBuffer data)
サンプルの double 配列を入力として使って DataBuffer 内のピクセルを設定します。 |
void |
setPixel(int x,
int y,
float[] fArray,
DataBuffer data)
サンプルの float 配列を入力として使って DataBuffer 内のピクセルを設定します。 |
void |
setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
サンプルの int 配列を入力として使用して DataBuffer 内のピクセルを設定します。 |
void |
setPixels(int x,
int y,
int w,
int h,
double[] dArray,
DataBuffer data)
配列要素ごとに 1 つのサンプルが格納されている double 配列から、ピクセルの矩形のすべてのサンプルを設定します。 |
void |
setPixels(int x,
int y,
int w,
int h,
float[] fArray,
DataBuffer data)
配列要素ごとに 1 つのサンプルが格納されている float 配列から、ピクセルの矩形のすべてのサンプルを設定します。 |
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) に位置するピクセルの、指定されたバンド内のサンプルを設定します。 |
abstract 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,
double[] dArray,
DataBuffer data)
配列要素ごとに 1 つのサンプルが格納されている double 配列から、指定されたピクセルの矩形の指定されたバンド内のサンプルを設定します。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
float[] fArray,
DataBuffer data)
配列要素ごとに 1 つのサンプルが格納されている float 配列から、指定されたピクセルの矩形の指定されたバンド内のサンプルを設定します。 |
void |
setSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
配列要素ごとに 1 つのサンプルが格納されている int 配列から、指定されたピクセルの矩形の指定されたバンド内のサンプルを設定します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
protected int width
protected int height
protected int numBands
protected int dataType
DataBuffer| コンストラクタの詳細 |
public SampleModel(int dataType,
int w,
int h,
int numBands)
dataType - ピクセルデータを格納する DataBuffer のデータタイプw - イメージデータの領域の幅 (ピクセル数)h - イメージデータの領域の高さ (ピクセル数)numBands - イメージデータのバンド数IllegalArgumentException - w または h が 0 以下の場合IllegalArgumentException - w と h の積が Integer.MAX_VALUE より大きい場合IllegalArgumentException - dataType がサポートされていない場合| メソッドの詳細 |
public final int getWidth()
public final int getHeight()
public final int getNumBands()
public abstract int getNumDataElements()
getDataElements(int, int, Object, DataBuffer),
getDataElements(int, int, int, int, Object, DataBuffer),
setDataElements(int, int, Object, DataBuffer),
setDataElements(int, int, int, int, Object, DataBuffer),
getTransferType()public final int getDataType()
public int getTransferType()
getDataElements(int, int, Object, DataBuffer),
getDataElements(int, int, int, int, Object, DataBuffer),
setDataElements(int, int, Object, DataBuffer),
setDataElements(int, int, int, int, Object, DataBuffer),
getNumDataElements(),
DataBuffer
public int[] getPixel(int x,
int y,
int[] iArray,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標iArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public abstract Object getDataElements(int x,
int y,
Object obj,
DataBuffer data)
次のコードは、SampleModel sm1 によってストレージレイアウトが記述されている DataBuffer db1 から、SampleModel sm2 によってストレージレイアウトが記述されている DataBuffer db2 へ、1 ピクセルのデータを転送する例です。通常、転送は getPixel/setPixel を使うよりも効率的です。
SampleModel sm1, sm2; DataBuffer db1, db2; sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1), db2);SampleModel のバンド数が同じで、対応するバンドのサンプル当りのビット数が同じで、transferType が同じである場合、2 つの DataBuffer/SampleModel のペアの間で転送するときは、getDataElements/setDataElements を使用するのが適切です。
obj が null でない場合は、transferType 型のプリミティブ配列になります。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj が null でなく、ピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることもあります。
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標obj - null でない場合は、返されたピクセルデータの入るプリミティブ配列data - イメージデータが格納されている DataBuffergetNumDataElements(),
getTransferType(),
DataBuffer
public Object getDataElements(int x,
int y,
int w,
int h,
Object obj,
DataBuffer data)
次のコードは、SampleModel sm1 によってストレージレイアウトが記述されている DataBuffer db1 から、SampleModel sm2 によってストレージレイアウトが記述されている DataBuffer db2 へ、ピクセルの矩形領域のデータを転送する例です。通常、転送は getPixels/setPixels を使うよりも効率的です。
SampleModel sm1, sm2;
DataBuffer db1, db2;
sm2.setDataElements(x, y, w, h, sm1.getDataElements(x, y, w,
h, null, db1), db2);
SampleModel のバンド数が同じで、対応するバンドのサンプル当りのビット数が同じで、transferType が同じである場合、2 つの DataBuffer/SampleModel のペアの間で転送するときは、getDataElements/setDataElements を使用するのが適切です。
obj が null でない場合は、transferType 型のプリミティブ配列になります。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj が null でなく、ピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることもあります。
x - ピクセル矩形の最小の X 座標y - ピクセル矩形の最小の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さobj - null でない場合は、返されたピクセルデータの入るプリミティブ配列data - イメージデータが格納されている DataBuffergetNumDataElements(),
getTransferType(),
DataBuffer
public abstract void setDataElements(int x,
int y,
Object obj,
DataBuffer data)
次のコードは、SampleModel sm1 によってストレージレイアウトが記述されている DataBuffer db1 から、SampleModel sm2 によってストレージレイアウトが記述されている DataBuffer db2 へ、1 ピクセルのデータを転送する例です。通常、転送は getPixel/setPixel を使うよりも効率的です。
SampleModel sm1, sm2;
DataBuffer db1, db2;
sm2.setDataElements(x, y, sm1.getDataElements(x, y, null, db1),
db2);
SampleModel のバンド数が同じで、対応するバンドのサンプル当りのビット数が同じで、transferType が同じである場合、2 つの DataBuffer/SampleModel のペアの間で転送するときは、getDataElements/setDataElements を使用するのが適切です。
obj は transferType 型のプリミティブ配列でなければなりません。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj がピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標obj - ピクセルデータを格納するプリミティブ配列data - イメージデータが格納されている DataBuffergetNumDataElements(),
getTransferType(),
DataBuffer
public void setDataElements(int x,
int y,
int w,
int h,
Object obj,
DataBuffer data)
次のコードは、SampleModel sm1 によってストレージレイアウトが記述されている DataBuffer db1 から、SampleModel sm2 によってストレージレイアウトが記述されている DataBuffer db2 へ、ピクセルの矩形領域のデータを転送する例です。通常、転送は getPixels/setPixels を使うよりも効率的です。
SampleModel sm1, sm2;
DataBuffer db1, db2;
sm2.setDataElements(x, y, w, h, sm1.getDataElements(x, y, w, h,
null, db1), db2);
SampleModel のバンド数が同じで、対応するバンドのサンプル当りのビット数が同じで、transferType が同じである場合、2 つの DataBuffer/SampleModel のペアの間で転送するときは、getDataElements/setDataElements を使用するのが適切です。
obj は transferType 型のプリミティブ配列でなければなりません。そうでない場合は、ClassCastException がスローされます。座標が境界内にない場合、または obj がピクセルデータを格納するために十分なサイズでない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
x - ピクセル矩形の最小の X 座標y - ピクセル矩形の最小の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さobj - ピクセルデータを格納するプリミティブ配列data - イメージデータが格納されている DataBuffergetNumDataElements(),
getTransferType(),
DataBuffer
public float[] getPixel(int x,
int y,
float[] fArray,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標fArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public double[] getPixel(int x,
int y,
double[] dArray,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標dArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public int[] getPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さiArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public float[] getPixels(int x,
int y,
int w,
int h,
float[] fArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さfArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public double[] getPixels(int x,
int y,
int w,
int h,
double[] dArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さdArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public abstract int getSample(int x,
int y,
int b,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 返されるバンドdata - イメージデータが格納されている DataBuffer
public float getSampleFloat(int x,
int y,
int b,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 返されるバンドdata - イメージデータが格納されている DataBuffer
public double getSampleDouble(int x,
int y,
int b,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 返されるバンドdata - イメージデータが格納されている DataBuffer
public int[] getSamples(int x,
int y,
int w,
int h,
int b,
int[] iArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 返されるバンドiArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public float[] getSamples(int x,
int y,
int w,
int h,
int b,
float[] fArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 返されるバンドfArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public double[] getSamples(int x,
int y,
int w,
int h,
int b,
double[] dArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 返されるバンドdArray - null でない場合、この配列内のサンプルを返すdata - イメージデータが格納されている DataBuffer
public void setPixel(int x,
int y,
int[] iArray,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標iArray - int 配列にある入力サンプルdata - イメージデータが格納されている DataBuffer
public void setPixel(int x,
int y,
float[] fArray,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標fArray - float 配列の入力サンプルdata - イメージデータが格納されている DataBuffer
public void setPixel(int x,
int y,
double[] dArray,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標dArray - double 配列の入力サンプルdata - イメージデータが格納されている DataBuffer
public void setPixels(int x,
int y,
int w,
int h,
int[] iArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さiArray - int 配列にある入力サンプルdata - イメージデータが格納されている DataBuffer
public void setPixels(int x,
int y,
int w,
int h,
float[] fArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さfArray - float 配列の入力サンプルdata - イメージデータが格納されている DataBuffer
public void setPixels(int x,
int y,
int w,
int h,
double[] dArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さdArray - double 配列の入力サンプルdata - イメージデータが格納されている DataBuffer
public abstract void setSample(int x,
int y,
int b,
int s,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 設定されるバンドs - int での入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSample(int x,
int y,
int b,
float s,
DataBuffer data)
x - ピクセル位置の X 座標y - ピクセル位置の Y 座標b - 設定されるバンドs - float での入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSample(int x,
int y,
int b,
double s,
DataBuffer data)
x - ピクセル位置の 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)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 設定されるバンドiArray - int 配列にある入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSamples(int x,
int y,
int w,
int h,
int b,
float[] fArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 設定されるバンドfArray - float 配列の入力サンプルdata - イメージデータが格納されている DataBuffer
public void setSamples(int x,
int y,
int w,
int h,
int b,
double[] dArray,
DataBuffer data)
x - 左上のピクセル位置の X 座標y - 左上のピクセル位置の Y 座標w - ピクセル矩形の幅h - ピクセル矩形の高さb - 設定されるバンドdArray - double 配列の入力サンプルdata - イメージデータが格納されている DataBuffer
public abstract SampleModel createCompatibleSampleModel(int w,
int h)
public abstract SampleModel createSubsetSampleModel(int[] bands)
public abstract DataBuffer createDataBuffer()
public abstract int[] getSampleSize()
public abstract int getSampleSize(int band)
|
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.