JavaTM 2 Platform
Std. Ed. v1.3

java.awt.image
クラス WritableRaster

java.lang.Object
  |
  +--java.awt.image.Raster
        |
        +--java.awt.image.WritableRaster

public class WritableRaster
extends Raster

このクラスは、ピクセル書き込み機能を提供するように Raster を拡張します。Raster がどのようにピクセルを格納するかについては、Raster クラスの説明を参照してください。

このクラスのコンストラクタは protected です。WritableRaster のインスタンスを生成するには、Raster クラスの createWritableRaster ファクトリメソッドのどれかを使用します。


クラス java.awt.image.Raster から継承したフィールド
dataBuffer, height, minX, minY, numBands, numDataElements, parent, sampleModel, sampleModelTranslateX, sampleModelTranslateY, width
 
コンストラクタの概要
protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Point origin)
          指定された SampleModel および DataBuffer を使って WritableRaster を構築します。
protected WritableRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point sampleModelTranslate, WritableRaster parent)
          指定された SampleModel、DataBuffer、および親を使って WritableRaster を構築します。
protected WritableRaster(SampleModel sampleModel, Point origin)
          指定された SampleModel を使って WritableRaster を構築します。
 
メソッドの概要
 WritableRaster createWritableChild(int parentX, int parentY, int w, int h, int childMinX, int childMinY, int[] bandList)
          この WritableRaster の DataBuffer の全部または一部を共有する新しい WritableRaster を返します。
 WritableRaster createWritableTranslatedChild(int childMinX, int childMinY)
          この WritableRaster と同じサイズ、SampleModel、および DataBuffer で、位置が異なる WritableRaster を作成します。
 WritableRaster getWritableParent()
          この WritableRaster の親の WritableRaster (存在する場合)、または null を返します。
 void setDataElements(int x, int y, int w, int h, Object inData)
          ピクセルの矩形のデータを transferType 型のプリミティブ配列から設定します。
 void setDataElements(int x, int y, Object inData)
          1 つのピクセルのデータを transferType 型のプリミティブ配列から設定します。
 void setDataElements(int x, int y, Raster inRaster)
          ピクセルの矩形のデータを入力 Raster から設定します。
 void setPixel(int x, int y, double[] dArray)
          サンプルの double 配列を入力として使って DataBuffer 内のピクセルを設定します。
 void setPixel(int x, int y, float[] fArray)
          サンプルの float 配列を入力として使って DataBuffer 内のピクセルを設定します。
 void setPixel(int x, int y, int[] iArray)
          サンプルの int 配列を入力として使って DataBuffer 内のピクセルを設定します。
 void setPixels(int x, int y, int w, int h, double[] dArray)
          配列要素ごとに 1 つのサンプルが格納されている double 配列から、ピクセルの矩形のすべてのサンプルを設定します。
 void setPixels(int x, int y, int w, int h, float[] fArray)
          配列要素ごとに 1 つのサンプルが格納されている float 配列から、ピクセルの矩形のすべてのサンプルを設定します。
 void setPixels(int x, int y, int w, int h, int[] iArray)
          配列要素ごとに 1 つのサンプルが格納されている int 配列から、ピクセルの矩形のすべてのサンプルを設定します。
 void setRect(int dx, int dy, Raster srcRaster)
          この WritableRaster に Raster srcRaster からピクセルをコピーします。
 void setRect(Raster srcRaster)
          この WritableRaster に Raster srcRaster からピクセルをコピーします。
 void setSample(int x, int y, int b, double s)
          double を入力として使用して DataBuffer 内の (x, y) に位置するピクセルの、指定されたバンド内のサンプルを設定します。
 void setSample(int x, int y, int b, float s)
          float を入力として使用して DataBuffer 内の (x, y) に位置するピクセルの、指定されたバンド内のサンプルを設定します。
 void setSample(int x, int y, int b, int s)
          int を入力として使用して DataBuffer 内の (x, y) に位置するピクセルの、指定されたバンド内のサンプルを設定します。
 void setSamples(int x, int y, int w, int h, int b, double[] dArray)
          配列要素ごとに 1 つのサンプルが格納されている double 配列から、指定されたピクセルの矩形における指定されたバンド内のサンプルを設定します。
 void setSamples(int x, int y, int w, int h, int b, float[] fArray)
          配列要素ごとに 1 つのサンプルが格納されている float 配列から、指定されたピクセルの矩形における指定されたバンド内のサンプルを設定します。
 void setSamples(int x, int y, int w, int h, int b, int[] iArray)
          配列要素ごとに 1 つのサンプルが格納されている int 配列から、指定されたピクセルの矩形における指定されたバンド内のサンプルを設定します。
 
クラス java.awt.image.Raster から継承したメソッド
createBandedRaster, createBandedRaster, createBandedRaster, createChild, createCompatibleWritableRaster, createCompatibleWritableRaster, createCompatibleWritableRaster, createCompatibleWritableRaster, createInterleavedRaster, createInterleavedRaster, createInterleavedRaster, createPackedRaster, createPackedRaster, createPackedRaster, createPackedRaster, createRaster, createTranslatedChild, createWritableRaster, createWritableRaster, getBounds, getDataBuffer, getDataElements, getDataElements, getHeight, getMinX, getMinY, getNumBands, getNumDataElements, getParent, getPixel, getPixel, getPixel, getPixels, getPixels, getPixels, getSample, getSampleDouble, getSampleFloat, getSampleModel, getSampleModelTranslateX, getSampleModelTranslateY, getSamples, getSamples, getSamples, getTransferType, getWidth
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

WritableRaster

protected WritableRaster(SampleModel sampleModel,
                         Point origin)
指定された SampleModel を使って WritableRaster を構築します。WritableRaster の左上隅が原点になり、サイズは SampleModel と同じになります。WritableRaster を記述するのに十分な大きさの DataBuffer が自動的に作成されます。
パラメータ:
sampleModel - レイアウトを指定する SampleModel
origin - 原点を指定する Point

WritableRaster

protected WritableRaster(SampleModel sampleModel,
                         DataBuffer dataBuffer,
                         Point origin)
指定された SampleModel および DataBuffer を使って WritableRaster を構築します。WritableRaster の左上隅が原点になり、サイズは SampleModel と同じになります。DataBuffer は初期化されておらず、SampleModel に準拠している必要があります。
パラメータ:
sampleModel - レイアウトを指定する SampleModel
dataBuffer - イメージデータを格納する DataBuffer
origin - 原点を指定する Point

WritableRaster

protected WritableRaster(SampleModel sampleModel,
                         DataBuffer dataBuffer,
                         Rectangle aRegion,
                         Point sampleModelTranslate,
                         WritableRaster parent)
指定された SampleModel、DataBuffer、および親を使って WritableRaster を構築します。aRegion には新しい Raster の境界の矩形を指定します。基底 Raster の座標系に変換されるとき、aRegion は基底 Raster によって包含されている必要があります。基底 Raster は Raster の上位オブジェクトであり、親を持ちません。sampleModelTranslate は新しい Raster の sampleModelTranslateX 値および sampleModelTranslateY 値を指定します。 このコンストラクタは、通常、ほかのコンストラクタまたは create メソッドによって呼び出されます。直接には使用しないようにしてください。
パラメータ:
sampleModel - レイアウトを指定する SampleModel
dataBuffer - イメージデータを格納する DataBuffer
aRegion - イメージ領域を指定する Rectangle
sampleModelTranslate - SampleModel から Raster 座標への変換を指定する Point
parent - このラスタの親 (存在する場合)
メソッドの詳細

getWritableParent

public WritableRaster getWritableParent()
この WritableRaster の親の WritableRaster (存在する場合)、または null を返します。

createWritableTranslatedChild

public WritableRaster createWritableTranslatedChild(int childMinX,
                                                    int childMinY)
この WritableRaster と同じサイズ、SampleModel、および DataBuffer で、位置が異なる WritableRaster を作成します。新しい WritableRaster は、getParent() メソッドおよび getWritableParent() メソッドを使用してアクセス可能な、現在の WritableRaster への参照を所有します。
パラメータ:
childMinX - 新しい Raster の左上隅の X 座標
childMinY - 新しい Raster の左上隅の Y 座標

createWritableChild

public WritableRaster createWritableChild(int parentX,
                                          int parentY,
                                          int w,
                                          int h,
                                          int childMinX,
                                          int childMinY,
                                          int[] bandList)
この WritableRaster の DataBuffer の全部または一部を共有する新しい WritableRaster を返します。新しい WritableRaster は、getParent() メソッドおよび getWritableParent() メソッドを使用してアクセス可能な、現在の WritableRaster への参照を所有します。

parentX、parentY、width、height の各パラメータによってこの WritableRaster の座標空間に形成される Rectangle が、共有されるピクセル領域を示します。この Rectangle が現在の WritableRaster の境界内にない場合は、エラーがスローされます。

新しい WritableRaster はさらに、同じ平面上で現在の WritableRaster が使用する座標体系とは異なる座標体系に変換できます。childMinX パラメータと childMinY パラメータにより、返された WritableRaster の左上隅にあるピクセルの新しい座標 (x, y) が指定されます。新しい WritableRaster 内の座標 (childMinX, childMinY) は、現在の WritableRaster 内の座標 (parentX, parentY) と同じピクセルにマップされます。

bandList パラメータを使用して、現在の WritableRaster のバンドのサブセットだけを、場合によっては順序付けし直して格納する新しい WritableRaster を定義できます。bandList が null の場合は、現在の WritableRaster のすべてのバンドが現在と同じ順序で格納されます。

現在の WritableRaster の一部の領域を含み、座標系とバンドを共有する新しい WritableRaster を作成するには、childMinX を parentX と同じに、childMinY を parentY と同じに、bandList を null にそれぞれ指定して、このメソッドを呼び出します。

パラメータ:
parentX - この WritableRaster の座標での左上隅の X 座標
parentY - この WritableRaster の座標での左上隅の Y 座標
width - (parentX, parentY) から始まる領域の幅
height - (parentX, parentY) から始まる領域の高さ
childMinX - 返される WritableRaster の左上隅の X 座標
childMinY - 返される WritableRaster の左上隅の Y 座標
bandList - バンドインデックスの配列。すべてのバンドを使用する場合は null
例外:
RasterFormatException - 部分領域がラスタの境界の外側にある場合

setDataElements

public void setDataElements(int x,
                            int y,
                            Object inData)
1 つのピクセルのデータを transferType 型のプリミティブ配列から設定します。Java 2D(tm) API によってサポートされているイメージデータの場合は、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT のどれかになります。配列内のデータはパックされた形式で返されることもあり、その場合、データ転送の効率が上がります。パラメータに対して明示的な境界のチェックは行われません。座標が境界内にない場合、または inData がピクセルデータを格納するために十分な大きさでない場合、ArrayIndexOutOfBoundsException がスローされることがあります。入力オブジェクトが null でなく、transferType の配列以外のものを参照する場合、ClassCastException がスローされます。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
inData - getTransferType() によって定義された型と getNumDataElements() によって定義された長さを持ち、x,y に配置するピクセルデータを格納する配列へのオブジェクト参照
関連項目:
SampleModel.setDataElements(int, int, Object, DataBuffer)

setDataElements

public void setDataElements(int x,
                            int y,
                            Raster inRaster)
ピクセルの矩形のデータを入力 Raster から設定します。入力 Raster はこの WritableRaster に準拠している必要があります。つまり、同じ数のバンドを持ち、対応するバンドのサンプル当りのビット数が同じで、transferType および NumDataElements も同じで、さらに、getDataElements/setDataElements によって使用されるパック方式が同じである必要があります。パラメータに対して明示的な境界のチェックは行われません。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
inRaster - x,y に配置するデータが格納されている Raster

setDataElements

public void setDataElements(int x,
                            int y,
                            int w,
                            int h,
                            Object inData)
ピクセルの矩形のデータを transferType 型のプリミティブ配列から設定します。Java 2D API によってサポートされているイメージデータの場合は、DataBuffer.TYPE_BYTE、DataBuffer.TYPE_USHORT、または DataBuffer.TYPE_INT のどれかになります。配列内のデータはパックされた形式で返されることもあり、その場合、データ転送の効率が上がります。配列内のパラメータに対して明示的な境界のチェックは行われません。座標が境界内にない場合、または inData がピクセルデータを格納するために十分な大きさでない場合、ArrayIndexOutOfBoundsException がスローされることがあります。入力オブジェクトが null でなく、transferType の配列以外のものを参照する場合は、ClassCastException がスローされます。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
inData - getTransferType() によって定義された型を持ち、長さが w*h*getNumDataElements() で、x,y と x+w-1, y+h-1 の間に配置するピクセルデータが格納されている配列へのオブジェクト参照
関連項目:
SampleModel.setDataElements(int, int, int, int, Object, DataBuffer)

setRect

public void setRect(Raster srcRaster)
この WritableRaster に Raster srcRaster からピクセルをコピーします。アドレスがこのラスタの境界外になる場合を除いて、srcRaster 内の各ピクセルは、この Raster 内の同じ x,y アドレスにコピーされます。srcRaster はこの WritableRaster と同じ数のバンドを持つ必要があります。コピーは、対応するデスティネーションサンプルへの、ソースサンプルの単純なコピーです。

ソースおよびデスティネーションの Raster のすべてのサンプルが整数型で、サイズが 32 ビット以下の場合、このメソッドの呼び出しは、両方の Raster で有効なすべての x,y アドレスで次のコードを実行するのと同じ結果になります。

       Raster srcRaster;
       WritableRaster dstRaster;
       for (int b = 0; b < srcRaster.getNumBands(); b++) {
           dstRaster.setSample(x, y, b, srcRaster.getSample(x, y, b));
       }
 
ソースサンプルのサイズがデスティネーションサンプルのサイズより大きいバンドがあると、ソースサンプルの上位ビットが切り捨てられます。ソースサンプルのサイズがデスティネーションサンプルのサイズより小さいバンドがあると、デスティネーションサンプルの上位ビットは、srcRaster の SampleModel がサンプルを符号付きの数量として扱うときはゼロで拡張され、符号なしの数量として扱うときは符号で拡張されます。

パラメータ:
srcRaster - ピクセルのコピー元の Raster

setRect

public void setRect(int dx,
                    int dy,
                    Raster srcRaster)
この WritableRaster に Raster srcRaster からピクセルをコピーします。(x+dx, y+dy) がこのラスタの境界外になる場合を除いて、srcRaster 内の各アドレス (x, y) について、対応するピクセルがこの WritableRaster 内のアドレス (x+dx, y+dy) にコピーされます。srcRaster はこの WritableRaster と同じ数のバンドを持つ必要があります。コピーは、対応するデスティネーションサンプルへの、ソースサンプルの単純なコピーです。詳細は setRect(Raster) を参照してください。
パラメータ:
dx - コピーの src 空間から dst 空間への X の変換係数
dy - コピーの src 空間から dst 空間への Y の変換係数
srcRaster - ピクセルのコピー元の Raster

setPixel

public void setPixel(int x,
                     int y,
                     int[] iArray)
サンプルの int 配列を入力として使って DataBuffer 内のピクセルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
iArray - int 配列の入力サンプル

setPixel

public void setPixel(int x,
                     int y,
                     float[] fArray)
サンプルの float 配列を入力として使って DataBuffer 内のピクセルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
fArray - float 配列の入力サンプル

setPixel

public void setPixel(int x,
                     int y,
                     double[] dArray)
サンプルの double 配列を入力として使って DataBuffer 内のピクセルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
dArray - double 配列の入力サンプル

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      int[] iArray)
配列要素ごとに 1 つのサンプルが格納されている int 配列から、ピクセルの矩形のすべてのサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
iArray - 入力 int ピクセル配列

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      float[] fArray)
配列要素ごとに 1 つのサンプルが格納されている float 配列から、ピクセルの矩形のすべてのサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
fArray - 入力 float ピクセル配列

setPixels

public void setPixels(int x,
                      int y,
                      int w,
                      int h,
                      double[] dArray)
配列要素ごとに 1 つのサンプルが格納されている double 配列から、ピクセルの矩形のすべてのサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
dArray - 入力 double ピクセル配列

setSample

public void setSample(int x,
                      int y,
                      int b,
                      int s)
int を入力として使用して DataBuffer 内の (x, y) に位置するピクセルの、指定されたバンド内のサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
b - 設定されるバンド
s - 入力サンプル

setSample

public void setSample(int x,
                      int y,
                      int b,
                      float s)
float を入力として使用して DataBuffer 内の (x, y) に位置するピクセルの、指定されたバンド内のサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
b - 設定されるバンド
s - float での入力サンプル

setSample

public void setSample(int x,
                      int y,
                      int b,
                      double s)
double を入力として使用して DataBuffer 内の (x, y) に位置するピクセルの、指定されたバンド内のサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - ピクセル位置の X 座標
y - ピクセル位置の Y 座標
b - 設定されるバンド
s - double での入力サンプル

setSamples

public void setSamples(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       int[] iArray)
配列要素ごとに 1 つのサンプルが格納されている int 配列から、指定されたピクセルの矩形における指定されたバンド内のサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
b - 設定されるバンド
iArray - 入力 int サンプル配列

setSamples

public void setSamples(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       float[] fArray)
配列要素ごとに 1 つのサンプルが格納されている float 配列から、指定されたピクセルの矩形における指定されたバンド内のサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
b - 設定されるバンド
fArray - 入力 float サンプル配列

setSamples

public void setSamples(int x,
                       int y,
                       int w,
                       int h,
                       int b,
                       double[] dArray)
配列要素ごとに 1 つのサンプルが格納されている double 配列から、指定されたピクセルの矩形における指定されたバンド内のサンプルを設定します。座標が境界内にない場合は、ArrayIndexOutOfBoundsException がスローされることがあります。
パラメータ:
x - 左上のピクセル位置の X 座標
y - 左上のピクセル位置の Y 座標
w - ピクセル矩形の幅
h - ピクセル矩形の高さ
b - 設定されるバンド
dArray - 入力 double サンプル配列

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.