|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.image.SampleModel
この抽象クラスは、イメージのピクセルのサンプルを抽出するためのインタフェースを定義します。すべてのイメージデータはピクセルのコレクションとして表されます。各ピクセルは数多くのサンプルからなります。サンプルとは、イメージの 1 つのバンドのデータです。Java 2D 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
- イメージデータのバンド数メソッドの詳細 |
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
- イメージデータが格納されている DataBufferpublic 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
- イメージデータが格納されている DataBufferpublic double[] getPixel(int x, int y, double[] dArray, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標dArray
- null でない場合は、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic int[] getPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- null でない場合は、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic float[] getPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さfArray
- null でない場合は、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic double[] getPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さdArray
- null でない場合は、この配列内のサンプルを返すdata
- イメージデータが格納されている DataBufferpublic abstract int getSample(int x, int y, int b, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返すバンドdata
- イメージデータが格納されている DataBufferpublic float getSampleFloat(int x, int y, int b, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返すバンドdata
- イメージデータが格納されている DataBufferpublic double getSampleDouble(int x, int y, int b, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 返すバンドdata
- イメージデータが格納されている DataBufferpublic 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
- イメージデータを格納する DataBufferpublic 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
- イメージデータが格納されている DataBufferpublic 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
- イメージデータが格納されている DataBufferpublic void setPixel(int x, int y, int[] iArray, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標iArray
- int 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixel(int x, int y, float[] fArray, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標fArray
- float 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixel(int x, int y, double[] dArray, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標dArray
- double 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixels(int x, int y, int w, int h, int[] iArray, DataBuffer data)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さiArray
- int 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixels(int x, int y, int w, int h, float[] fArray, DataBuffer data)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さfArray
- float 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setPixels(int x, int y, int w, int h, double[] dArray, DataBuffer data)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さdArray
- double 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic abstract void setSample(int x, int y, int b, int s, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 設定するバンドs
- int での入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSample(int x, int y, int b, float s, DataBuffer data)
x
- ピクセル位置の X 座標y
- ピクセル位置の Y 座標b
- 設定するバンドs
- float での入力サンプルdata
- イメージデータが格納されている DataBufferpublic void setSample(int x, int y, int b, double s, DataBuffer data)
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)
x
- 左上のピクセル位置の X 座標y
- 左上のピクセル位置の Y 座標w
- ピクセル矩形の幅h
- ピクセル矩形の高さb
- 設定するバンドiArray
- int 配列の入力サンプルdata
- イメージデータが格納されている DataBufferpublic 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
- イメージデータが格納されている DataBufferpublic 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
- イメージデータが格納されている DataBufferpublic 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)
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |