モジュール java.desktop
パッケージ 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()
  • フィールドのサマリー

  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    PixelGrabber​(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
    指定されたImageProducerが生成するイメージからピクセルの矩形部分(x, y, w, h)を指定の配列に取り出す、PixelGrabberオブジェクトを生成します。
    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オブジェクトを生成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    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 == 0の場合、全ピクセルが転送されるまで待つ
      • ms > 0の場合、指定された時間が経過するか、全ピクセルが転送されるまで待つ。
      • ms < 0の場合、ピクセルがすべて取得できた場合はtrue、そうでない場合はfalseを返し、待たない。
      パラメータ:
      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によって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。

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

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

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

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

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

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

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

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

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

      定義:
      setColorModel、インタフェース: ImageConsumer
      パラメータ:
      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によって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。

      定義:
      setPixels、インタフェース: ImageConsumer
      パラメータ:
      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によって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。

      定義:
      setPixels、インタフェース: ImageConsumer
      パラメータ:
      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によって呼び出されることを意図して実装されています。 このクラスを使ってイメージからピクセルを取り出す場合は、このメソッドを直接呼び出さないようにしてください。このメソッドを直接呼び出すと、要求されているピクセルを取り出す上で問題が生じる可能性があります。

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

      public int status()
      ピクセルのステータスを返します。 使用可能なピクセル情報を表すImageObserverフラグを返します。 このメソッドとgetStatusは同じ実装を持っていますが、「getXXX」という形式を持つ情報取得メソッドの命名規則に従うgetStatusメソッドの使用をお薦めします。
      戻り値:
      すべての関連するImageObserverフラグのビット和
      関連項目:
      ImageObservergetStatus()