|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.awt.image.MemoryImageSource
public class MemoryImageSource
此類別是 ImageProducer 介面的一個實作,該介面使用一個陣列為 Image 產生像素值。下面的範例計算了一幅 100x100 的圖像,表示沿 X 軸從黑色漸變到藍色,沿 Y 軸從黑色漸變到紅色:
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 ColorModel 中的整數陣列為 Image 物件產生資料的 ImageProducer 物件。 |
|
MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan,
Hashtable<?,?> props)
建構一個使用預設 RGB ColorModel 中的整數陣列為 Image 物件產生資料的 ImageProducer 物件。 |
|
| 方法摘要 | |
|---|---|
void |
addConsumer(ImageConsumer ic)
將 ImageConsumer 添加到對此圖像資料感興趣的使用者列表。 |
boolean |
isConsumer(ImageConsumer ic)
確定某個 ImageConsumer 目前是否處於對此圖像資料感興趣的使用者列表中。 |
void |
newPixels()
將全部的新像素緩衝區發送到所有目前對此圖像資料感興趣的 ImageConsumer,並通知這些 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,並通知這些 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)
w - 像素矩形的寬度h - 像素矩形的高度cm - 指定的 ColorModelpix - 一個像素陣列off - 陣列中存儲首個像素的偏移量scan - 陣列中一行像素到下一行像素之間的距離Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
ColorModel cm,
byte[] pix,
int off,
int scan,
Hashtable<?,?> props)
w - 像素矩形的寬度h - 像素矩形的高度cm - 指定的 ColorModelpix - 一個像素陣列off - 陣列中存儲首個像素的偏移量scan - 陣列中一行像素到下一行像素之間的距離props - ImageProducer 用於處理圖像的屬性列表Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
ColorModel cm,
int[] pix,
int off,
int scan)
w - 像素矩形的寬度h - 像素矩形的高度cm - 指定的 ColorModelpix - 一個像素陣列off - 陣列中存儲首個像素的偏移量scan - 陣列中一行像素到下一行像素之間的距離Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
ColorModel cm,
int[] pix,
int off,
int scan,
Hashtable<?,?> props)
w - 像素矩形的寬度h - 像素矩形的高度cm - 指定的 ColorModelpix - 一個像素陣列off - 陣列中存儲首個像素的偏移量scan - 陣列中一行像素到下一行像素之間的距離props - ImageProducer 用於處理圖像的屬性列表Component.createImage(java.awt.image.ImageProducer)
public MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan)
w - 像素矩形的寬度h - 像素矩形的高度pix - 一個像素陣列off - 陣列中存儲首個像素的偏移量scan - 陣列中一行像素到下一行像素之間的距離Component.createImage(java.awt.image.ImageProducer),
ColorModel.getRGBdefault()
public MemoryImageSource(int w,
int h,
int[] pix,
int off,
int scan,
Hashtable<?,?> props)
w - 像素矩形的寬度h - 像素矩形的高度pix - 一個像素陣列off - 陣列中存儲首個像素的偏移量scan - 陣列中一行像素到下一行像素之間的距離props - ImageProducer 用於處理圖像的屬性列表Component.createImage(java.awt.image.ImageProducer),
ColorModel.getRGBdefault()| 方法詳細資訊 |
|---|
public void addConsumer(ImageConsumer ic)
ImageProducer 中的 addConsumeric - 指定的 ImageConsumer
NullPointerException - 如果指定的 ImageConsumer 為 nullImageConsumerpublic boolean isConsumer(ImageConsumer ic)
ImageProducer 中的 isConsumeric - 指定的 ImageConsumer
ImageConsumer 處於列表中,則返回 true;否則返回 false。ImageConsumerpublic void removeConsumer(ImageConsumer ic)
ImageProducer 中的 removeConsumeric - 指定的 ImageConsumerImageConsumerpublic void startProduction(ImageConsumer ic)
ImageProducer 中的 startProductionic - 通過 ImageConsumer 介面的指定 ImageConsumer 圖像資料。ImageConsumerpublic void requestTopDownLeftRightResend(ImageConsumer ic)
ImageProducer 中的 requestTopDownLeftRightResendic - 指定的 ImageConsumerImageConsumerpublic void setAnimated(boolean animated)
應該在建構 MemoryImageSource 後和使用它創建圖像前立即調用此方法,以確保所有的 ImageConsumer 都將接收正確的多幀資料。如果在設置此標誌前將一個 ImageConsumer 添加到此 ImageProducer 中,則該 ImageConsumer 將只能看到在它連接時可用的一個像素資料快照。
animated - 如果該圖像是一個多幀動畫,則為 truepublic void setFullBufferUpdates(boolean fullbuffers)
應該在建構 MemoryImageSource 後和使用它創建圖像前立即調用此方法,以確保所有的 ImageConsumer 都將接收正確的像素傳遞提示。
fullbuffers - 如果總是應該發送完整的像素緩衝區,則為 truesetAnimated(boolean)public void newPixels()
newPixels(int, int, int, int, boolean),
ImageConsumer,
setAnimated(boolean)
public void newPixels(int x,
int y,
int w,
int h)
x - 要發送的像素矩形左上角的 x 坐標y - 要發送的像素矩形左上角的 y 坐標w - 要發送的像素矩形的寬度h - 要發送的像素矩形的高度newPixels(int, int, int, int, boolean),
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)
newpix - 新的像素陣列newmodel - 指定的 ColorModeloffset - 陣列中的偏移量scansize - 陣列中一行像素到下一行像素之間的距離newPixels(int, int, int, int, boolean),
setAnimated(boolean)
public void newPixels(int[] newpix,
ColorModel newmodel,
int offset,
int scansize)
newpix - 新的像素陣列newmodel - 指定的 ColorModeloffset - 陣列中的偏移量scansize - 陣列中一行像素到下一行像素之間的距離newPixels(int, int, int, int, boolean),
setAnimated(boolean)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。