モジュール java.desktop
パッケージ java.awt.image

クラスMemoryImageSource

  • すべての実装されたインタフェース:
    ImageProducer

    public class MemoryImageSource
    extends Object
    implements ImageProducer
    このクラスは、配列を使ってImageのピクセル値を生成するImageProducerインタフェースを実装します。 次の例は、X軸方向に黒から青へ変化し、Y軸方向に黒から赤へ変化する100×100のイメージです。
    
    
          int w = 100;
          int h = 100;
          int pix[] = new int[w * h];
          int index = 0;
          for (int y = 0; y < h; y++) {
              int red = (y * 255) / (h - 1);
              for (int x = 0; x < w; x++) {
                  int blue = (x * 255) / (w - 1);
                  pix[index++] = (255 << 24) | (red << 16) | blue;
              }
          }
          Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));
    
     
    また、MemoryImageSourceは、時間とともに変化して、アニメーションやカスタム・レンダリングを可能にするメモリー・イメージを管理する機能を持ちます。 次に、アニメーション・ソース、およびデータの信号変化の設定方法の例を示します(Garth DickieによるMemoryAnimationSourceDemoからの適用)。
    
    
          int pixels[];
          MemoryImageSource source;
    
          public void init() {
              int width = 50;
              int height = 50;
              int size = width * height;
              pixels = new int[size];
    
              int value = getBackground().getRGB();
              for (int i = 0; i < size; i++) {
                  pixels[i] = value;
              }
    
              source = new MemoryImageSource(width, height, pixels, 0, width);
              source.setAnimated(true);
              image = createImage(source);
          }
    
          public void run() {
              Thread me = Thread.currentThread( );
              me.setPriority(Thread.MIN_PRIORITY);
    
              while (true) {
                  try {
                      Thread.sleep(10);
                  } catch( InterruptedException e ) {
                      return;
                  }
    
                  // Modify the values in the pixels array at (x, y, w, h)
    
                  // Send the new data to the interested ImageConsumers
                  source.newPixels(x, y, w, h);
              }
          }
    
     
    関連項目:
    ImageProducer
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      MemoryImageSource​(int w, int h, int[] pix, int off, int scan)
      デフォルトRGBカラー・モデルの整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
      MemoryImageSource​(int w, int h, int[] pix, int off, int scan, Hashtable<?,?> props)
      デフォルトRGBカラー・モデルの整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
      MemoryImageSource​(int w, int h, ColorModel cm, byte[] pix, int off, int scan)
      byte配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
      MemoryImageSource​(int w, int h, ColorModel cm, byte[] pix, int off, int scan, Hashtable<?,?> props)
      byte配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
      MemoryImageSource​(int w, int h, ColorModel cm, int[] pix, int off, int scan)
      整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
      MemoryImageSource​(int w, int h, ColorModel cm, int[] pix, int off, int scan, Hashtable<?,?> props)
      整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      void addConsumer​(ImageConsumer ic)
      このイメージのデータの配信対象となっているコンシューマのリストにImageConsumerを追加します。
      boolean isConsumer​(ImageConsumer ic)
      現在このイメージのデータの配信対象となっているコンシューマのリストにImageConsumerがあるかどうかを判定します。
      void newPixels()
      このイメージ・データを現在要求するImageConsumerにピクセルの新しいバッファ全体を送出し、アニメーション・フレームの送出が完了したことを通知します。
      void newPixels​(byte[] newpix, ColorModel newmodel, int offset, int scansize)
      新しいbyte配列を、このイメージのピクセルを保持するように変更します。
      void newPixels​(int[] newpix, ColorModel newmodel, int offset, int scansize)
      新しいint配列を、このイメージのピクセルを保持するように変更します。
      void newPixels​(int x, int y, int w, int h)
      このイメージのデータを現在要求するImageConsumerにピクセルの矩形領域バッファを送出し、アニメーション・フレームの送出が完了したことを通知します。
      void newPixels​(int x, int y, int w, int h, boolean framenotify)
      このイメージのデータを現在要求するImageConsumerに、ピクセルの矩形領域バッファを送出します。
      void removeConsumer​(ImageConsumer ic)
      このイメージのデータの配信対象となっているコンシューマのリストからImageConsumerを削除します。
      void requestTopDownLeftRightResend​(ImageConsumer ic)
      指定されたImageConsumerに、上から下、左から右の順でもう1回イメージ・データを配信し直すように要求します。
      void setAnimated​(boolean animated)
      animatedパラメータに従って、このメモリー・イメージをマルチフレームのアニメーションまたはシングル・フレームの静止イメージに変更します。
      void setFullBufferUpdates​(boolean fullbuffers)
      変更があったときはいつでもピクセルの完全なバッファを送出し、このアニメーション化メモリー・イメージを常に更新するかどうかを指定します。
      void startProduction​(ImageConsumer ic)
      このイメージ・データを要求するコンシューマのリストにImageConsumerを追加し、ImageConsumerインタフェース経由でただちにイメージ・データの転送を開始します。
    • コンストラクタの詳細

      • MemoryImageSource

        public MemoryImageSource​(int w,
                                 int h,
                                 ColorModel cm,
                                 byte[] pix,
                                 int off,
                                 int scan)
        byte配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
        パラメータ:
        w - ピクセルの矩形の幅
        h - ピクセルの矩形の高さ
        cm - 指定されたColorModel
        pix - ピクセルの配列
        off - 最初のピクセルを配列のどこに格納するかを表すオフセット
        scan - 配列内のあるピクセル行から次のピクセル行までの距離
        関連項目:
        Component.createImage(java.awt.image.ImageProducer)
      • MemoryImageSource

        public MemoryImageSource​(int w,
                                 int h,
                                 ColorModel cm,
                                 byte[] pix,
                                 int off,
                                 int scan,
                                 Hashtable<?,?> props)
        byte配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
        パラメータ:
        w - ピクセルの矩形の幅
        h - ピクセルの矩形の高さ
        cm - 指定されたColorModel
        pix - ピクセルの配列
        off - 最初のピクセルを配列のどこに格納するかを表すオフセット
        scan - 配列内のあるピクセル行から次のピクセル行までの距離
        props - ImageProducerがイメージ処理で使うプロパティ・リスト
        関連項目:
        Component.createImage(java.awt.image.ImageProducer)
      • MemoryImageSource

        public MemoryImageSource​(int w,
                                 int h,
                                 ColorModel cm,
                                 int[] pix,
                                 int off,
                                 int scan)
        整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
        パラメータ:
        w - ピクセルの矩形の幅
        h - ピクセルの矩形の高さ
        cm - 指定されたColorModel
        pix - ピクセルの配列
        off - 最初のピクセルを配列のどこに格納するかを表すオフセット
        scan - 配列内のあるピクセル行から次のピクセル行までの距離
        関連項目:
        Component.createImage(java.awt.image.ImageProducer)
      • MemoryImageSource

        public MemoryImageSource​(int w,
                                 int h,
                                 ColorModel cm,
                                 int[] pix,
                                 int off,
                                 int scan,
                                 Hashtable<?,?> props)
        整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
        パラメータ:
        w - ピクセルの矩形の幅
        h - ピクセルの矩形の高さ
        cm - 指定されたColorModel
        pix - ピクセルの配列
        off - 最初のピクセルを配列のどこに格納するかを表すオフセット
        scan - 配列内のあるピクセル行から次のピクセル行までの距離
        props - ImageProducerがイメージ処理で使うプロパティ・リスト
        関連項目:
        Component.createImage(java.awt.image.ImageProducer)
      • MemoryImageSource

        public MemoryImageSource​(int w,
                                 int h,
                                 int[] pix,
                                 int off,
                                 int scan)
        デフォルトRGBカラー・モデルの整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
        パラメータ:
        w - ピクセルの矩形の幅
        h - ピクセルの矩形の高さ
        pix - ピクセルの配列
        off - 最初のピクセルを配列のどこに格納するかを表すオフセット
        scan - 配列内のあるピクセル行から次のピクセル行までの距離
        関連項目:
        Component.createImage(java.awt.image.ImageProducer), ColorModel.getRGBdefault()
      • MemoryImageSource

        public MemoryImageSource​(int w,
                                 int h,
                                 int[] pix,
                                 int off,
                                 int scan,
                                 Hashtable<?,?> props)
        デフォルトRGBカラー・モデルの整数型配列を使用してImageオブジェクト・データを生成するImageProducerオブジェクトを構築します。
        パラメータ:
        w - ピクセルの矩形の幅
        h - ピクセルの矩形の高さ
        pix - ピクセルの配列
        off - 最初のピクセルを配列のどこに格納するかを表すオフセット
        scan - 配列内のあるピクセル行から次のピクセル行までの距離
        props - ImageProducerがイメージ処理で使うプロパティ・リスト
        関連項目:
        Component.createImage(java.awt.image.ImageProducer), ColorModel.getRGBdefault()
    • メソッドの詳細

      • addConsumer

        public void addConsumer​(ImageConsumer ic)
        このイメージのデータの配信対象となっているコンシューマのリストにImageConsumerを追加します。
        定義:
        addConsumer、インタフェース: ImageProducer
        パラメータ:
        ic - 指定されたImageConsumer
        例外:
        NullPointerException - 指定されたImageConsumerがnullの場合
        関連項目:
        ImageConsumer
      • isConsumer

        public boolean isConsumer​(ImageConsumer ic)
        現在このイメージのデータの配信対象となっているコンシューマのリストにImageConsumerがあるかどうかを判定します。
        定義:
        isConsumer、インタフェース: ImageProducer
        パラメータ:
        ic - 指定されたImageConsumer
        戻り値:
        ImageConsumerがリスト上にある場合はtrue、そうでない場合はfalse
        関連項目:
        ImageConsumer
      • removeConsumer

        public void removeConsumer​(ImageConsumer ic)
        このイメージのデータの配信対象となっているコンシューマのリストからImageConsumerを削除します。
        定義:
        removeConsumer、インタフェース: ImageProducer
        パラメータ:
        ic - 指定されたImageConsumer
        関連項目:
        ImageConsumer
      • startProduction

        public void startProduction​(ImageConsumer ic)
        このイメージ・データを要求するコンシューマのリストにImageConsumerを追加し、ImageConsumerインタフェース経由でただちにイメージ・データの転送を開始します。
        定義:
        startProduction、インタフェース: ImageProducer
        パラメータ:
        ic - ImageConsumerインタフェースを介した、指定されたImageConsumerイメージ・データ。
        関連項目:
        ImageConsumer
      • requestTopDownLeftRightResend

        public void requestTopDownLeftRightResend​(ImageConsumer ic)
        指定されたImageConsumerに、上から下、左から右の順でもう1回イメージ・データを配信し直すように要求します。
        定義:
        requestTopDownLeftRightResend、インタフェース: ImageProducer
        パラメータ:
        ic - 指定されたImageConsumer
        関連項目:
        ImageConsumer
      • setAnimated

        public void setAnimated​(boolean animated)
        animatedパラメータに従って、このメモリー・イメージをマルチフレームのアニメーションまたはシングル・フレームの静止イメージに変更します。

        このメソッドは、すべてのImageConsumerが正常なマルチフレーム・データを受け取ることを保証するために、MemoryImageSourceの構築後ただちに、イメージが生成される前に呼び出す必要があります。 このフラグを設定する前に、ImageConsumerをこのImageProducerに追加すると、接続したときに利用可能であったピクセル・データのスナップショットだけがImageConsumerから参照されます。

        パラメータ:
        animated - そのイメージがマルチフレーム・アニメーションの場合はtrue
      • setFullBufferUpdates

        public void setFullBufferUpdates​(boolean fullbuffers)
        変更があったときはいつでもピクセルの完全なバッファを送出し、このアニメーション化メモリー・イメージを常に更新するかどうかを指定します。 このフラグは、setAnimated()メソッド経由でアニメーション・フラグがオンにならない場合は無視されます。

        このメソッドは、MemoryImageSourceの構築後ただちに、イメージが作成される前に呼び出され、すべてのImageConsumerに正常なピクセル転送情報を受け渡します。

        パラメータ:
        fullbuffers - 完全なピクセル・バッファを常に送出する場合はtrue
        関連項目:
        setAnimated(boolean)
      • newPixels

        public void newPixels()
        このイメージ・データを現在要求するImageConsumerにピクセルの新しいバッファ全体を送出し、アニメーション・フレームの送出が完了したことを通知します。 このメソッドは、setAnimated()メソッドを介して、アニメーション・フラグがオンになっている場合にだけ動作します。
        関連項目:
        newPixels(int, int, int, int, boolean), ImageConsumer, setAnimated(boolean)
      • newPixels

        public void newPixels​(int x,
                              int y,
                              int w,
                              int h)
        このイメージのデータを現在要求するImageConsumerにピクセルの矩形領域バッファを送出し、アニメーション・フレームの送出が完了したことを通知します。 このメソッドは、setAnimated()メソッドを介して、アニメーション・フラグがオンになっている場合にだけ動作します。 setFullBufferUpdates()メソッドで完全バッファ更新フラグがオンになっている場合、矩形パラメータは無視され、全バッファが常に送出されます。
        パラメータ:
        x - 送出されるピクセルの矩形の左上隅のX座標
        y - 送出されるピクセルの矩形の左上隅のY座標
        w - 送出されるピクセルの矩形の幅
        h - 送出されるピクセルの矩形の高さ
        関連項目:
        newPixels(int, int, int, int, boolean), ImageConsumer, setAnimated(boolean), setFullBufferUpdates(boolean)
      • newPixels

        public void newPixels​(int x,
                              int y,
                              int w,
                              int h,
                              boolean framenotify)
        このイメージのデータを現在要求するImageConsumerに、ピクセルの矩形領域バッファを送出します。 framenotifyパラメータがtrueの場合は、アニメーション・フレームの送出が完了したことも通知します。 このメソッドは、setAnimated()メソッドを介して、アニメーション・フラグがオンになっている場合にだけ動作します。 setFullBufferUpdates()メソッドで完全バッファ更新フラグがオンになっている場合、矩形パラメータは無視され、全バッファが常に送出されます。
        パラメータ:
        x - 送出されるピクセルの矩形の左上隅のX座標
        y - 送出されるピクセルの矩形の左上隅のY座標
        w - 送出されるピクセルの矩形の幅
        h - 送出されるピクセルの矩形の高さ
        framenotify - コンシューマにSINGLEFRAMEDONE通知を送出する場合はtrue
        関連項目:
        ImageConsumer, setAnimated(boolean), setFullBufferUpdates(boolean)
      • newPixels

        public void newPixels​(byte[] newpix,
                              ColorModel newmodel,
                              int offset,
                              int scansize)
        新しいbyte配列を、このイメージのピクセルを保持するように変更します。 setAnimated()メソッド経由でアニメーション・フラグがオンになっている場合、このイメージのデータを現在要求しているImageConsumerに、新しいピクセルをただちに転送します。
        パラメータ:
        newpix - 新しいピクセル配列
        newmodel - 指定されたColorModel
        offset - 配列へのオフセット
        scansize - 配列内のあるピクセル行から次のピクセル行までの距離
        関連項目:
        newPixels(int, int, int, int, boolean), setAnimated(boolean)
      • newPixels

        public void newPixels​(int[] newpix,
                              ColorModel newmodel,
                              int offset,
                              int scansize)
        新しいint配列を、このイメージのピクセルを保持するように変更します。 setAnimated()メソッド経由でアニメーション・フラグがオンになっている場合、このイメージのデータを現在要求しているImageConsumerに、新しいピクセルをただちに転送します。
        パラメータ:
        newpix - 新しいピクセル配列
        newmodel - 指定されたColorModel
        offset - 配列へのオフセット
        scansize - 配列内のあるピクセル行から次のピクセル行までの距離
        関連項目:
        newPixels(int, int, int, int, boolean), setAnimated(boolean)