JavaTM Platform
Standard Ed. 6

java.awt.image
クラス MemoryImageSource

java.lang.Object
  上位を拡張 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, 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 オブジェクトを構築します。
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 オブジェクトを構築します。
 
メソッドの概要
 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 インタフェース経由でただちにイメージデータの転送を開始します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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 を追加します。

定義:
インタフェース ImageProducer 内の addConsumer
パラメータ:
ic - 指定された ImageConsumer
例外:
NullPointerException - 指定された ImageConsumer が null の場合
関連項目:
ImageConsumer

isConsumer

public boolean isConsumer(ImageConsumer ic)
現在このイメージのデータの配信対象となっているコンシューマのリストに ImageConsumer があるかどうかを判定します。

定義:
インタフェース ImageProducer 内の isConsumer
パラメータ:
ic - 指定された ImageConsumer
戻り値:
ImageConsumer がリストにある場合は true、 そうでない場合は false
関連項目:
ImageConsumer

removeConsumer

public void removeConsumer(ImageConsumer ic)
このイメージのデータの配信対象となっているコンシューマのリストから ImageConsumer を削除します。

定義:
インタフェース ImageProducer 内の removeConsumer
パラメータ:
ic - 指定された ImageConsumer
関連項目:
ImageConsumer

startProduction

public void startProduction(ImageConsumer ic)
このイメージデータを要求するコンシューマのリストに ImageConsumer を追加し、ImageConsumer インタフェース経由でただちにイメージデータの転送を開始します。

定義:
インタフェース ImageProducer 内の startProduction
パラメータ:
ic - ImageConsumer インタフェースを介した、 指定された ImageConsumer イメージデータ
関連項目:
ImageConsumer

requestTopDownLeftRightResend

public void requestTopDownLeftRightResend(ImageConsumer ic)
指定された ImageConsumer に、上から下、左から右の順でもう 1 回イメージデータを配信し直すように要求します。

定義:
インタフェース ImageProducer 内の requestTopDownLeftRightResend
パラメータ:
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)

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 も参照してください。