JavaTM 2 Platform
Std. Ed. v1.3

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)
          int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, int scan, Hashtable props)
          int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
MemoryImageSource(int w, int h, int[] pix, int off, int scan)
          デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
MemoryImageSource(int w, int h, int[] pix, int off, int scan, Hashtable props)
          デフォルト RGB カラーモデルの int 配列を使用して 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 オブジェクトを構築します。
関連項目:
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 オブジェクトを構築します。
関連項目:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         ColorModel cm,
                         int[] pix,
                         int off,
                         int scan)
int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
関連項目:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         ColorModel cm,
                         int[] pix,
                         int off,
                         int scan,
                         Hashtable props)
int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
関連項目:
Component.createImage(java.awt.image.ImageProducer)

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         int[] pix,
                         int off,
                         int scan)
デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
関連項目:
Component.createImage(java.awt.image.ImageProducer), ColorModel.getRGBdefault()

MemoryImageSource

public MemoryImageSource(int w,
                         int h,
                         int[] pix,
                         int off,
                         int scan,
                         Hashtable props)
デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを構築します。
関連項目:
Component.createImage(java.awt.image.ImageProducer), ColorModel.getRGBdefault()
メソッドの詳細

addConsumer

public void addConsumer(ImageConsumer ic)
このイメージのデータの配信対象となっているコンシューマのリストに ImageConsumer を追加します。
定義:
インタフェース ImageProducer 内の addConsumer
関連項目:
ImageConsumer

isConsumer

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

removeConsumer

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

startProduction

public void startProduction(ImageConsumer ic)
このイメージデータを要求するコンシューマのリストに ImageConsumer を追加し、ImageConsumer インタフェースを介してただちにイメージデータの転送を開始します。
定義:
インタフェース ImageProducer 内の startProduction
関連項目:
ImageConsumer

requestTopDownLeftRightResend

public void requestTopDownLeftRightResend(ImageConsumer ic)
指定された ImageConsumer に、上から下へ、左から右への順でもう 1 回イメージデータを配信し直すように要求します。
定義:
インタフェース ImageProducer 内の requestTopDownLeftRightResend
関連項目:
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() メソッドを介して、アニメーションフラグがオンになっている場合にだけ動作します。
関連項目:
ImageConsumer, setAnimated(boolean)

newPixels

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

newPixels

public void newPixels(int[] newpix,
                      ColorModel newmodel,
                      int offset,
                      int scansize)
新しい int 配列を、このイメージのピクセルを保持するように変更します。setAnimated() メソッドを介してアニメーションフラグがオンになっている場合、このイメージのデータを現在要求している ImageConsumer に、新しいピクセルをただちに転送します。
関連項目:
setAnimated(boolean)

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.