モジュール java.desktop
パッケージ 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()
      ピクセルのステータスを返します。
    • コンストラクタの詳細

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