public class PixelGrabber extends Object implements 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]);
          }
      }
 }
 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() | ピクセルのステータスを返します。 | 
public PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
img - ピクセルの取得元イメージx - イメージから取得するピクセルの矩形の左上隅のx座標。イメージのデフォルト(スケーリングされていない)サイズを基準にするy - イメージから取得するピクセルの矩形の左上隅のy座標w - 取得するピクセルの矩形の幅h - 取得するピクセルの矩形の高さpix - イメージから取得したRGBピクセルの格納に使用する整数配列off - 最初のピクセルを配列のどこに格納するかを表すオフセットscansize - 配列内のあるピクセル行から次のピクセル行までの距離ColorModel.getRGBdefault()public PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
ip - ピクセルを取得するイメージを生成するImageProducerx - イメージから取得するピクセルの矩形の左上隅のx座標。イメージのデフォルト(スケーリングされていない)サイズを基準にするy - イメージから取得するピクセルの矩形の左上隅のy座標w - 取得するピクセルの矩形の幅h - 取得するピクセルの矩形の高さpix - イメージから取得したRGBピクセルの格納に使用する整数配列off - 最初のピクセルを配列のどこに格納するかを表すオフセットscansize - 配列内のあるピクセル行から次のピクセル行までの距離ColorModel.getRGBdefault()public PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
(w < 0)または(h < 0)の場合は、情報が転送されるときの残りのソース・データの幅と高さがデフォルトになります。 img - イメージ・データの取得元イメージx - イメージから取得するピクセルの矩形の左上隅のx座標。イメージのデフォルト(スケーリングされていない)サイズを基準にするy - イメージから取得するピクセルの矩形の左上隅のy座標w - 取得するピクセルの矩形の幅h - 取得するピクセルの矩形の高さforceRGB - ピクセルをデフォルトRGB ColorModelに常に変換する場合はtruepublic void startGrabbing()
public void abortGrabbing()
public boolean grabPixels()
                   throws InterruptedException
InterruptedException - ほかのスレッドがこのスレッドを中断した場合。public boolean grabPixels(long ms)
                   throws InterruptedException
msの値によって、次のように動作します。 
 ms == 0の場合、全ピクセルが転送されるまで待つ
 ms > 0の場合、指定された時間が経過するか、全ピクセルが転送されるまで待つ。
 ms < 0の場合、ピクセルがすべて取得できた場合はtrue、そうでない場合はfalseを返し、待たない。
 ms - イメージのピクセルが取得を待つ時間(ミリ秒)。これを経過した場合はタイム・アウトになるInterruptedException - ほかのスレッドがこのスレッドを中断した場合。public int getStatus()
ImageObserverpublic int getWidth()
getStatus()public int getHeight()
getStatus()public Object getPixels()
public ColorModel getColorModel()
getStatus(), ColorModel.getRGBdefault(), setColorModel(ColorModel)public void setDimensions(int width,
                          int height)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setDimensions、インタフェースImageConsumerwidth - このDimensionの幅height - このDimensionの高さpublic void setHints(int hints)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setHints、インタフェースImageConsumerhints - ピクセル処理に使用されるヒント・セットpublic void setProperties(Hashtable<?,?> props)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setProperties、インタフェースImageConsumerprops - プロパティのリストpublic void setColorModel(ColorModel model)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setColorModel、インタフェースImageConsumermodel - 指定されたColorModelgetColorModel()public void setPixels(int srcX,
                      int srcY,
                      int srcW,
                      int srcH,
                      ColorModel model,
                      byte[] pixels,
                      int srcOff,
                      int srcScan)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setPixels、インタフェースImageConsumersrcX - 設定されるピクセルの領域の左上隅のX座標srcY - 設定されるピクセルの領域の左上隅のY座標srcW - ピクセル領域の幅srcH - ピクセル領域の高さmodel - 指定されたColorModelpixels - ピクセルの配列srcOff - pixels配列のオフセットsrcScan - pixels配列内のあるピクセル行から次のピクセル行までの距離getPixels()public void setPixels(int srcX,
                      int srcY,
                      int srcW,
                      int srcH,
                      ColorModel model,
                      int[] pixels,
                      int srcOff,
                      int srcScan)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
setPixels、インタフェースImageConsumersrcX - 設定されるピクセルの領域の左上隅のX座標srcY - 設定されるピクセルの領域の左上隅のY座標srcW - ピクセル領域の幅srcH - ピクセル領域の高さmodel - 指定されたColorModelpixels - ピクセルの配列srcOff - pixels配列のオフセットsrcScan - pixels配列内のあるピクセル行から次のピクセル行までの距離getPixels()public void imageComplete(int status)
ノート: このメソッドは、取出し対象のピクセルで構成されるImageのImageProducerによって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。
imageComplete、インタフェースImageConsumerstatus - イメージ・ロードのステータスImageProducer.removeConsumer(java.awt.image.ImageConsumer)public int status()
getStatusは同じ実装を持っていますが、「getXXX」という形式を持つ情報取得メソッドの命名規則に従うgetStatusメソッドの使用をお薦めします。 ImageObserver、getStatus() バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。