JavaTM Platform
Standard Ed. 6

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 ピクセルの 格納に使用する整数配列
off - 最初のピクセルを配列のどこに格納するかを表すオフセット
scansize - 配列内のあるピクセル行から次のピクセル行までの 距離
関連項目:
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] の配列に格納されます。

パラメータ:
ip - ピクセルを取得するイメージを 生成する ImageProducer
x - イメージから取得するピクセルの矩形の 左上隅の x 座標。イメージのデフォルト (スケーリングされていない) サイズを 基準にする
y - イメージから取得するピクセルの矩形の 左上隅の y 座標
w - 取得するピクセルの矩形の幅
h - 取得するピクセルの矩形の高さ
pix - イメージから取得した RGB ピクセルの 格納に使用する整数配列
off - 最初のピクセルを配列のどこに格納するかを表すオフセット
scansize - 配列内のあるピクセル行から次のピクセル行までの 距離
関連項目:
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(), setPixels(int, int, int, int, ColorModel, byte[], int, int), setPixels(int, int, int, int, ColorModel, int[], int, int)

getColorModel

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

戻り値:
ピクセルの格納に使用される ColorModel オブジェクト
関連項目:
getStatus(), ColorModel.getRGBdefault(), setColorModel(ColorModel)

setDimensions

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

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

定義:
インタフェース ImageConsumer 内の setDimensions
パラメータ:
width - この Dimension の幅
height - この Dimension の高さ

setHints

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

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

定義:
インタフェース ImageConsumer 内の setHints
パラメータ:
hints - ピクセル処理に使用されるヒントセット

setProperties

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

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

定義:
インタフェース ImageConsumer 内の setProperties
パラメータ:
props - プロパティーのリスト

setColorModel

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

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

定義:
インタフェース ImageConsumer 内の setColorModel
パラメータ:
model - 指定された ColorModel
関連項目:
getColorModel()

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
パラメータ:
srcX - 設定されるピクセル領域の 左上隅の X 座標
srcY - 設定されるピクセル領域の 左上隅の Y 座標
srcW - ピクセル領域の幅
srcH - ピクセル領域の高さ
model - 指定された ColorModel
pixels - ピクセルの配列
srcOff - pixels 配列のオフセット
srcScan - pixels 配列内でのあるピクセル行から次のピクセル行までの 距離
関連項目:
getPixels()

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
パラメータ:
srcX - 設定されるピクセル領域の 左上隅の X 座標
srcY - 設定されるピクセル領域の 左上隅の Y 座標
srcW - ピクセル領域の幅
srcH - ピクセル領域の高さ
model - 指定された ColorModel
pixels - ピクセルの配列
srcOff - pixels 配列のオフセット
srcScan - pixels 配列内でのあるピクセル行から次のピクセル行までの 距離
関連項目:
getPixels()

imageComplete

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

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

定義:
インタフェース ImageConsumer 内の imageComplete
パラメータ:
status - イメージロードの状態
関連項目:
ImageProducer.removeConsumer(java.awt.image.ImageConsumer)

status

public int status()
ピクセルの状態を返します。使用可能なピクセル情報を表す ImageObserver フラグを返します。このメソッドと getStatus は同じ実装を持っていますが、"getXXX" という形式を持つ情報取得メソッドの命名規則に従う getStatus メソッドの使用をお勧めします。

戻り値:
すべての関連する ImageObserver フラグのビット和
関連項目:
ImageObserver, getStatus()

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。