|
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)
ImageConsumer
public boolean isConsumer(ImageConsumer ic)
ImageConsumer
public void removeConsumer(ImageConsumer ic)
ImageConsumer
public void startProduction(ImageConsumer ic)
ImageConsumer
public void requestTopDownLeftRightResend(ImageConsumer ic)
ImageConsumer
public 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 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |