|
Java プラットフォーム 1.2 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--java.awt.image.MemoryImageSource
このクラスは、配列を使って 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 に、イメージデータを上下左右順で再度転送することを要求します。 |
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 |
| コンストラクタの詳細 |
public MemoryImageSource(int w,
int h,
ColorModel cm,
byte[] pix,
int off,
int scan)
Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
ColorModel cm,
byte[] pix,
int off,
int scan,
Hashtable props)
Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
ColorModel cm,
int[] pix,
int off,
int scan)
Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
ColorModel cm,
int[] pix,
int off,
int scan,
Hashtable props)
Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan)
Component.createImage(java.awt.image.ImageProducer),
ColorModel.getRGBdefault()
public MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan,
Hashtable props)
Component.createImage(java.awt.image.ImageProducer),
ColorModel.getRGBdefault()| メソッドの詳細 |
public void addConsumer(ImageConsumer ic)
ImageConsumerpublic boolean isConsumer(ImageConsumer ic)
ImageConsumerpublic void removeConsumer(ImageConsumer ic)
ImageConsumerpublic void startProduction(ImageConsumer ic)
ImageConsumerpublic void requestTopDownLeftRightResend(ImageConsumer ic)
ImageConsumerpublic void setAnimated(boolean animated)
このメソッドは、すべての ImageConsumer が正常なマルチフレームデータを受け取ることを保証するために、MemoryImageSource の構築後ただちに、イメージが作成される前に呼び出されなければなりません。このフラグを設定する前に、ImageConsumer をこの ImageProducer に追加すると、接続した時に利用可能であったピクセルデータのスナップショットだけが ImageConsumer から参照されます。
animated - そのイメージがマルチフレームアニメーションの場合は truepublic void setFullBufferUpdates(boolean fullbuffers)
このメソッドは、MemoryImageSource の構成後ただちに、イメージが作成される前に呼び出され、すべての ImageConsumer が正常なピクセル転送情報を受け取ることを保証します。
fullbuffers - 完全なピクセルバッファを常に送出する場合は truesetAnimated(boolean)public void newPixels()
ImageConsumer,
setAnimated(boolean)
public void newPixels(int x,
int y,
int w,
int h)
x - 送出されるピクセルの矩形の左上隅の x 座標y - 送出されるピクセルの矩形の左上隅の y 座標w - 送出されるピクセルの矩形の幅h - 送出されるピクセルの矩形の高さImageConsumer,
setAnimated(boolean),
setFullBufferUpdates(boolean)
public void newPixels(int x,
int y,
int w,
int h,
boolean framenotify)
x - 送出されるピクセルの矩形の左上隅の x 座標y - 送出されるピクセルの矩形の左上隅の y 座標w - 送出されるピクセルの矩形の幅h - 送出されるピクセルの矩形の高さframenotify - コンシューマに SINGLEFRAMEDONE 通知を送出する場合は trueImageConsumer,
setAnimated(boolean),
setFullBufferUpdates(boolean)
public void newPixels(byte[] newpix,
ColorModel newmodel,
int offset,
int scansize)
setAnimated(boolean)
public void newPixels(int[] newpix,
ColorModel newmodel,
int offset,
int scansize)
setAnimated(boolean)
|
Java プラットフォーム 1.2 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||