Java プラットフォーム 1.2

java.awt.image
クラス PixelGrabber

java.lang.Object
  |
  +--java.awt.image.PixelGrabber

public class PixelGrabber
extends Object
implements ImageConsumer

PixelGrabber クラスは、Image オブジェクトや ImageProducer オブジェクトと接続してそのイメージのピクセルのサブセットを抽出できるような ImageConsumer を実装します。以下に例を示します。


 public void handlesinglepixel(int x, int y, int pixel) {
	int alpha = (pixel >> 24) & 0xff;
	int red   = (pixel >> 16) & 0xff;
	int green = (pixel >>  8) & 0xff;
	int blue  = (pixel      ) & 0xff;
	// Deal with the pixel as necessary...
 }

 public void handlepixels(Image img, int x, int y, int w, int h) {
	int[] pixels = new int[w * h];
	PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
	try {
	    pg.grabPixels();
	} catch (InterruptedException e) {
	    System.err.println("interrupted waiting for pixels!");
	    return;
	}
	if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
	    System.err.println("image fetch aborted or errored");
	    return;
	}
	for (int j = 0; j < h; j++) {
	    for (int i = 0; i < w; i++) {
		handlesinglepixel(x+i, y+j, pixels[j * w + i]);
	    }
	}
 }

 

関連項目:
ColorModel.getRGBdefault()

コンストラクタの概要
PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
          指定されたイメージからピクセルの矩形部分 (x, y, w, h) を取り出す、PixelGrabber オブジェクトを作成します。
PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
          指定されたイメージからピクセルの矩形部分 (x, y, w, h) を指定の配列に取り出す、PixelGrabber オブジェクトを作成します。
PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
          指定された ImageProducer が生成するイメージからピクセルの矩形部分 (x, y, w, h) を指定の配列に取り出す、PixelGrabber オブジェクトを作成します。
 
メソッドの概要
 void abortGrabbing()
          PixelGrabber にイメージの取り込み中止を要求します。
 ColorModel getColorModel()
          ピクセルを配列に格納するための ColorModel を取得します。
 int getHeight()
          (イメージの高さを調整後) ピクセルバッファの高さを取得します。
 Object getPixels()
          ピクセルバッファを取得します。
 int getStatus()
          ピクセルの状態を返します。
 int getWidth()
          (イメージの幅を調整後) ピクセルバッファの幅を取得します。
 boolean grabPixels()
          Image または ImageProducer に、ピクセルの転送を開始し、転送を要求された矩形のピクセルがすべて転送されるまで待つことを要求します。
 boolean grabPixels(long ms)
          Image または ImageProducer に、ピクセルの転送を開始し、転送を要求された矩形のピクセルがすべて転送されるまで、または指定された時間まで待つことを要求します。
 void imageComplete(int status)
          imageComplete メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
 void setColorModel(ColorModel model)
          setColorModel メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
 void setDimensions(int width, int height)
          setDimensions メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
 void setHints(int hints)
          setHints メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
 void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
          setPixels メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
 void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
          setPixels メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。
 void setProperties(Hashtable props)
          setProperties メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の 一部です。
 void startGrabbing()
          PixelGrabber にピクセルの取り込み開始を要求します。
 int status()
          推奨されません。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

PixelGrabber

public PixelGrabber(Image img,
                    int x,
                    int y,
                    int w,
                    int h,
                    int[] pix,
                    int off,
                    int scansize)
指定されたイメージからピクセルの矩形部分 (x, y, w, h) を指定の配列に取り出す、PixelGrabber オブジェクトを作成します。ピクセルは、デフォルトの RGB ColorModel で格納されます。ピクセル (i, j) の RGB データは、矩形 (x, y, w, h) の中の (i, j) に位置し、配列の pix[(j - y) * scansize + (i - x) + off] に格納されます。
パラメータ:
img - ピクセルが取り出されるイメージ
x - イメージから取り出すピクセルの矩形の左上隅の x 座標 (拡縮されていないデフォルトサイズ)
y - イメージから取り出すピクセルの矩形の左上隅の y 座標
w - 取り出すピクセルの矩形の幅
h - 取り出すピクセルの矩形の高さ
pix - イメージから取り出した RGB ピクセルを保持する int 配列
off - 最初のピクセルを配列のどこに格納するかを表すオフセット
scansize - 配列上でのピクセルの 1 列の大きさ
関連項目:
ColorModel.getRGBdefault()

PixelGrabber

public PixelGrabber(ImageProducer ip,
                    int x,
                    int y,
                    int w,
                    int h,
                    int[] pix,
                    int off,
                    int scansize)
指定された ImageProducer が生成するイメージからピクセルの矩形部分 (x, y, w, h) を指定の配列に取り出す、PixelGrabber オブジェクトを作成します。ピクセルは、デフォルトの RGB ColorModel で格納されます。ピクセル (i, j) の RGB データは、矩形 (x, y, w, h) の中の (i, j) に位置し、配列の pix[(j - y) * scansize + (i - x) + off] に格納されます。
パラメータ:
img - ピクセルが取り出されるイメージ
x - イメージから取り出すピクセルの矩形の左上隅の x 座標 (拡縮されていないデフォルトサイズ)
y - イメージから取り出すピクセルの矩形の左上隅の y 座標
w - 取り出すピクセルの矩形の幅
h - 取り出すピクセルの矩形の高さ
pix - イメージから取り出した RGB ピクセルを保持する int 配列
off - 最初のピクセルを配列のどこに格納するかを表すオフセット
scansize - 配列上でのピクセルの 1 列の大きさ
関連項目:
ColorModel.getRGBdefault()

PixelGrabber

public PixelGrabber(Image img,
                    int x,
                    int y,
                    int w,
                    int h,
                    boolean forceRGB)
指定されたイメージからピクセルの矩形部分 (x, y, w, h) を取り出す、PixelGrabber オブジェクトを作成します。各 setPixels の呼び出しに対して同じ ColorModel が使用される場合、ピクセルは元の ColorModel で蓄積されます。そうでなければ、ピクセルはデフォルト RGB ColorModel で蓄積されます。forceRGB パラメータが true の場合、ピクセルはデフォルトの RGB ColorModel で蓄積されます。PixelGrabber は、どちらの場合でもピクセルが保持されるようにバッファを割り当てます。(w < 0) または (h < 0) の場合は、情報が転送されるときのソースデータの幅と高さがデフォルトになります。
パラメータ:
img - ピクセルが取り出されるイメージ
x - イメージから取り出すピクセルの矩形の左上隅の x 座標 (拡縮されていないデフォルトサイズ)
y - イメージから取り出すピクセルの矩形の左上隅の y 座標
w - 取り出すピクセルの矩形の幅
h - 取り出すピクセルの矩形の高さ
forceRGB - ピクセルをデフォルト RGB ColorModel に常に変換する場合は true
メソッドの詳細

startGrabbing

public void startGrabbing()
PixelGrabber にピクセルの取り込み開始を要求します。

abortGrabbing

public void abortGrabbing()
PixelGrabber にイメージの取り込み中止を要求します。

grabPixels

public boolean grabPixels()
                   throws InterruptedException
Image または ImageProducer に、ピクセルの転送を開始し、転送を要求された矩形のピクセルがすべて転送されるまで待つことを要求します。
戻り値:
ピクセルを取り出すのに成功した場合は true。中断、エラーまたは時間切れの場合は false
例外:
InterruptedException - ほかのスレッドがこのスレッドを中断した場合

grabPixels

public boolean grabPixels(long ms)
                   throws InterruptedException
Image または ImageProducer に、ピクセルの転送を開始し、転送を要求された矩形のピクセルがすべて転送されるまで、または指定された時間まで待つことを要求します。
パラメータ:
ms - 時間切れになるまで、イメージのピクセルが到着するのを待つ時間 (ミリ秒)
戻り値:
ピクセルを取り出すのに成功した場合は true。中断、エラー、または時間切れの場合は false
例外:
InterruptedException - ほかのスレッドがこのスレッドを中断した場合

getStatus

public int getStatus()
ピクセルの状態を返します。利用可能なピクセルの情報を表す ImageObserver のフラグを返します。
戻り値:
適合する ImageObserver のフラグのビット和
関連項目:
ImageObserver

getWidth

public int getWidth()
(イメージの幅を調整後) ピクセルバッファの幅を取得します。ピクセルの矩形の幅が指定されていなかった場合、この情報は、イメージが大きさを転送したあとにのみ利用可能です。
戻り値:
ピクセルバッファに使用される最終的な幅。未定の場合は、-1
関連項目:
getStatus()

getHeight

public int getHeight()
(イメージの高さを調整後) ピクセルバッファの高さを取得します。ピクセルの矩形の高さが指定されていなかった場合、この情報は、イメージが大きさを転送したあとにのみ利用可能です。
戻り値:
ピクセルバッファに使用される最終的な高さ。未定の場合は、-1
関連項目:
getStatus()

getPixels

public Object getPixels()
ピクセルバッファを取得します。ピクセルを保持する明示的なピクセルバッファで PixelGrabber が作成されなかった場合、このメソッドはイメージのサイズおよび形式がわかるまで null を返します。ソースイメージが複数の ColorModel を使用してデータを転送する場合は常に、PixelGrabber はデフォルト RGB ColorModel でデータを蓄積しようとするので、このメソッドで返される配列オブジェクトは、イメージの取得が完了するまでの間に変化する可能性があります。
戻り値:
byte 配列または int 配列
関連項目:
getStatus()

getColorModel

public ColorModel getColorModel()
ピクセルを配列に格納するための ColorModel を取得します。PixelGrabber が明示的なピクセルバッファで作成される場合、このメソッドは、常にデフォルトの RGB ColorModel を返します。ソースイメージが複数の ColorModel を使用してデータを転送する場合は常に、PixelGrabber はデフォルト RGB ColorModel でデータを蓄積しようとするので、このメソッドで返される ColorModel オブジェクトは、イメージの取得が完了するまでの間に変化することがあります。その場合、ピクセルの転送に ImageProducer が使用した ColorModel オブジェクトが 1 つも反映されない可能性があります。
戻り値:
ピクセルの格納に使用される ColorModel オブジェクト
関連項目:
getStatus(), ColorModel.getRGBdefault()

setDimensions

public void setDimensions(int width,
                          int height)
setDimensions メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることが意図されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の setDimensions

setHints

public void setHints(int hints)
setHints メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることが意図されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の setHints

setProperties

public void setProperties(Hashtable props)
setProperties メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の 一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることが意図されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の setProperties

setColorModel

public void setColorModel(ColorModel model)
setColorModel メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されるようになっています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の setColorModel

setPixels

public void setPixels(int srcX,
                      int srcY,
                      int srcW,
                      int srcH,
                      ColorModel model,
                      byte[] pixels,
                      int srcOff,
                      int srcScan)
setPixels メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることが意図されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の setPixels

setPixels

public void setPixels(int srcX,
                      int srcY,
                      int srcW,
                      int srcH,
                      ColorModel model,
                      int[] pixels,
                      int srcOff,
                      int srcScan)
setPixels メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることが意図されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の setPixels

imageComplete

public void imageComplete(int status)
imageComplete メソッドは、ピクセルを取り出すためにこのクラスが実装しなければならない ImageConsumer API の一部です。

注: このメソッドは、取り出し対象のピクセルで構成される Image の ImageProducer によって呼び出されることが意図されています。このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じるおそれがあります。

定義:
インタフェース ImageConsumer 内の imageComplete

status

public int status()
推奨されません。getStatus() で置き換えます。

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.