全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.awt.image.MemoryImageSource

java.lang.Object
   |
   +----java.awt.image.MemoryImageSource

public class MemoryImageSource
extends Object
implements ImageProducer
このクラスは、配列を用いて Image のピクセル値を生成するImageProducer インタフェースを実装します。以下の例は、X 軸方向に黒から青へ変化し、Y 軸方向に黒から赤へ変化する 100 x 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

Constructor Index

 o MemoryImageSource(int, int, ColorModel, byte[], int, int)
byte 配列を使用してImage オブジェクトのデータを生成する ImageProducer オブジェクトを作成する。
 o MemoryImageSource(int, int, ColorModel, byte[], int, int, Hashtable)
byte 配列を使用してImage オブジェクトのデータを 生成する ImageProducer オブジェクトを作成する。
 o MemoryImageSource(int, int, ColorModel, int[], int, int)
int 配列を使用してImage オブジェクトのデータを生成する ImageProducer オブジェクトを作成する。
 o MemoryImageSource(int, int, ColorModel, int[], int, int, Hashtable)
int 配列を使用してImage オブジェクトのデータを生成する ImageProducer オブジェクトを作成する。
 o MemoryImageSource(int, int, int[], int, int)
デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトのデータを生成する ImageProducer オブジェクトを作成する。
 o MemoryImageSource(int, int, int[], int, int, Hashtable)
デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトのデータを生成する ImageProducer オブジェクトを作成する。

Method Index

 o addConsumer(ImageConsumer)
このイメージのデータを要求する消費者のリストに ImageConsumer を加える。
 o isConsumer(ImageConsumer)
ImageConsumer がこのイメージのデータを要求する消費者のリストに登録されているかどうかを判定する。
 o newPixels()
このイメージのデータを現在要求する ImageConsumers に、ピクセルの新しいバッファを全部送出し、アニメーションフレームの送出が完了したことを通知する。
 o newPixels(byte[], ColorModel, int, int)
新しい byte 配列が、このイメージのピクセルを保持するするように変更する。
 o newPixels(int, int, int, int)
このイメージのデータを現在要求する ImageConsumers に、ピクセルの矩形領域バッファを送出し、アニメーションフレームの送出が完了したことを通知する。
 o newPixels(int, int, int, int, boolean)
このイメージのデータを現在要求する ImageConsumers に、ピクセルの矩形領域バッファを送出する。
 o newPixels(int[], ColorModel, int, int)
新しく int 配列に変更し、このイメージのピクセルを保持する。
 o removeConsumer(ImageConsumer)
このイメージを要求する消費者のリストから ImageConsumer を削除する。
 o requestTopDownLeftRightResend(ImageConsumer)
指定された ImageConsumer に、イメージデータを上下左右順で再度転送することを要求する。
 o setAnimated(boolean)
アニメーション化パラメータに従って、このメモリイメージを複数フレームのアニメーションまたは単一フレームの静止イメージに変更する。
 o setFullBufferUpdates(boolean)
変更があったときはいつでもピクセルの完全なバッファを送出し、このアニメーション化メモリイメージを常に更新するかどうかを指定する。
 o startProduction(ImageConsumer)
このイメージを要求する消費者のリストに ImageConsumer を加え、ImageConsumer インタフェースを介してすぐにイメージデータの転送を開始する。

Constructors

 o MemoryImageSource
  public MemoryImageSource(int w,
                           int h,
                           ColorModel cm,
                           byte pix[],
                           int off,
                           int scan)
byte 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを作成します。

参照:
createImage
 o MemoryImageSource
  public MemoryImageSource(int w,
                           int h,
                           ColorModel cm,
                           byte pix[],
                           int off,
                           int scan,
                           Hashtable props)
byte 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを作成します。

参照:
createImage
 o MemoryImageSource
  public MemoryImageSource(int w,
                           int h,
                           ColorModel cm,
                           int pix[],
                           int off,
                           int scan)
int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを作成します。

参照:
createImage
 o MemoryImageSource
  public MemoryImageSource(int w,
                           int h,
                           ColorModel cm,
                           int pix[],
                           int off,
                           int scan,
                           Hashtable props)
int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを作成します。

参照:
createImage
 o MemoryImageSource
  public MemoryImageSource(int w,
                           int h,
                           int pix[],
                           int off,
                           int scan)
デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを作成します。

参照:
createImage, getRGBdefault
 o MemoryImageSource
  public MemoryImageSource(int w,
                           int h,
                           int pix[],
                           int off,
                           int scan,
                           Hashtable props)
デフォルト RGB カラーモデルの int 配列を使用して Image オブジェクトデータを生成する ImageProducer オブジェクトを作成します。

参照:
createImage, getRGBdefault

Methods

 o addConsumer
  public synchronized void addConsumer(ImageConsumer ic)
このイメージデータを要求する消費者のリストに指定された ImageConsumer を加えます。

参照:
ImageConsumer
 o isConsumer
  public synchronized boolean isConsumer(ImageConsumer ic)
このイメージを要求する消費者のリストに、ImageConsumer が登録されているかどうかを判定します。

返り値:
ImageConsumer がリスト上にある場合は true、ない場合は false
参照:
ImageConsumer
 o removeConsumer
  public synchronized void removeConsumer(ImageConsumer ic)
このイメージデータを要求する消費者のリストから ImageConsumer を削除します。

参照:
ImageConsumer
 o startProduction
  public void startProduction(ImageConsumer ic)
このイメージデータを要求する消費者のリストに ImageConsumer を加え、ImageConsumer インタフェースを介して直ちにイメージデータの転送を開始します。

参照:
ImageConsumer
 o requestTopDownLeftRightResend
  public void requestTopDownLeftRightResend(ImageConsumer ic)
指定された ImageConsumer に、イメージデータを上下左右順で再度転送することを要求します。

参照:
ImageConsumer
 o setAnimated
  public synchronized void setAnimated(boolean animated)
アニメーション化パラメータに従って、このメモリイメージを複数フレームのアニメーションまたは単一フレームの静止イメージに変更します。

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

パラメータ:
animated - そのイメージが複数フレームアニメーションの場合はtrue
 o setFullBufferUpdates
  public synchronized void setFullBufferUpdates(boolean fullbuffers)
変更があったときはいつでもピクセルの完全なバッファを送出し、このアニメーション化メモリイメージを常に更新するかどうかを指定します。このフラグは、setAnimated() メソッドを介してアニメーションフラグがオフの場合、無視されます。

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

パラメータ:
fullbuffers - 完全なピクセルバッファが常に送出されている場合は true
参照:
setAnimated
 o newPixels
  public void newPixels()
このイメージデータを現在要求する ImageConsumers へピクセルの新しいバッファを全部送出し、アニメーションフレームの送出は完了したことを通知します。このメソッドは、setAnimated() メソッドを介して、アニメーションフラグがオンであった場合のみ動作します。

参照:
ImageConsumer, setAnimated
 o newPixels
  public synchronized void newPixels(int x,
                                     int y,
                                     int w,
                                     int h)
このイメージのデータを現在要求する ImageConsumers に、ピクセルの矩形領域バッファを送出し、アニメーションフレームの送出が完了したことを通知します。このメソッドは、setAnimated() メソッドを介して、アニメーションフラグがオンであった場合のみ動作します。setFullBufferUpdates() メソッドで完全バッファ更新フラグがオンであった場合、矩形パラメータは無視され、全バッファが常に送出されます。

パラメータ:
x - 送出されるピクセルの矩形の左上角の x 座標
y - 送出されるピクセルの矩形の左上角の y 座標
w - 送出されるピクセルの矩形の幅
h - 送出されるピクセルの矩形の高さ
参照:
ImageConsumer, setAnimated, setFullBufferUpdates
 o newPixels
  public synchronized void newPixels(int x,
                                     int y,
                                     int w,
                                     int h,
                                     boolean framenotify)
このイメージのデータを現在要求する ImageConsumers に、ピクセルの矩形領域バッファを送出します。framenotify パラメータが true の場合、アニメーションフレームの送出が完了したことも通知します。このメソッドは、setAnimated() メソッドを介して、アニメーションフラグがオンであった場合のみ動作します。setFullBufferUpdates() メソッドで完全バッファ更新フラグがオンであった場合、矩形パラメータは無視され、全バッファが常に送出されます。

パラメータ:
x - 送出されるピクセルの矩形の左上角の x 座標
y - 送出されるピクセルの矩形の左上角の y 座標
w - 送出されるピクセルの矩形の幅
h - 送出されるピクセルの矩形の高さ
framenotify - 消費者に SINGLEFRAMEDONE 通知を送出した場合は true
参照:
ImageConsumer, setAnimated, setFullBufferUpdates
 o newPixels
  public synchronized void newPixels(byte newpix[],
                                     ColorModel newmodel,
                                     int offset,
                                     int scansize)
新しい byte 配列が、このイメージのピクセルを保持するするように変更します。 setAnimated() メソッドを介してアニメーションフラグがオンであった場合、このイメージのデータを現在要求している ImageConsumers へ新しいピクセルを直ちに転送します。

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

参照:
setAnimated

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス