JavaTM 2 Platform
Std. Ed. v1.3

java.awt.image
クラス PixelGrabber

java.lang.Object
  |
  +--java.awt.image.PixelGrabber
すべての実装インタフェース:
ImageConsumer

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()

インタフェース java.awt.image.ImageConsumer から継承したフィールド
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
 
コンストラクタの概要
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) が矩形 (x, y, w, h) の内部に位置するピクセル (i, j) の RGB データは、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) が矩形 (x, y, w, h) の内部に位置するピクセル (i, j) の RGB データは、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 の値によって、以下のように動作します。
パラメータ:
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 を返します。そうでない場合、ImageProducer によって使用される ColorModel がわかるまで null を返します。ソースイメージが複数の 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
インタフェース java.awt.image.ImageConsumer からコピーされたタグ:
関連項目:
ColorModel

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
インタフェース java.awt.image.ImageConsumer からコピーされたタグ:
関連項目:
ColorModel

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
インタフェース java.awt.image.ImageConsumer からコピーされたタグ:
関連項目:
ColorModel

imageComplete

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

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

定義:
インタフェース ImageConsumer 内の imageComplete
インタフェース java.awt.image.ImageConsumer からコピーされたタグ:
関連項目:
ImageProducer.removeConsumer(java.awt.image.ImageConsumer)

status

public int status()
ピクセルの状態を返します。使用可能なピクセル情報を表す ImageObserver フラグが返されます。このメソッドと getStatus は同じ実装を持っていますが、getStatus メソッドのほうをお勧めします。getStatus は、"getXXX" という形式を持つ情報取得メソッドの命名規則に従っているからです。
戻り値:
適合する ImageObserver のフラグのビット和
関連項目:
ImageObserver, getStatus()

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.