如何爲面板背景圖像分配bytearray值。如果有人有想法或體驗,請幫我解決問題。簡介EXP:如何將bytearray轉換爲圖像或圖像bytearray?
我有面板控制,並希望加載從web服務獲取圖像作爲backgroundimage。所以我使用setstyle(),但它不接受該圖像。所以如何將這個圖像添加到我的面板背景圖像。Plz在這裏給我你的想法。
如何爲面板背景圖像分配bytearray值。如果有人有想法或體驗,請幫我解決問題。簡介EXP:如何將bytearray轉換爲圖像或圖像bytearray?
我有面板控制,並希望加載從web服務獲取圖像作爲backgroundimage。所以我使用setstyle(),但它不接受該圖像。所以如何將這個圖像添加到我的面板背景圖像。Plz在這裏給我你的想法。
對於AS3,您可以使用adobe corelib。檢查本教程... http://ntt.cc/2009/01/09/as3corelib-tutorialhow-to-use-jpegencoder-and-pngencoder-class-in-flex.html
鏈接中斷 – 2013-07-12 18:20:14
只是將鏈接更改爲類似的教程,但請檢查其他答案是否使用Alex Rios發佈的外部庫。 – ozke 2013-08-15 09:42:32
嗯,好我想,因爲它是一個形象,你有它在一個BitmapData,讓我們說「myBmp」 ...... 然後使用以下方法來提取所有數據的BitmapData:
var bytes:ByteArray = myBmp.getPixels(myBmp.rect);
和以下寫:
myBmp.setPixels(myBmp.rect, bytes);
注意,只有原始32比特的像素數據被存儲在所述的ByteArray,無壓縮,也不是原始圖像的尺寸。
壓縮,您應該參考corelib的,因爲ozke說...
使用Adobe的JPGEncoder(com.adobe.images.JPGEncoder)類和ByteArray是幾乎所有你需要的。轉換圖像的字節數組(假設CAPS是你需要填寫變量):
// -- first draw (copy) the image's bitmap data
var image:DisplayObject = YOUR_IMAGE;
var src:BitmapData = new BitmapData(image.width, image.height);
src.draw(image);
// -- encode the jpg
var quality:int = 75;
var jpg:JPGEncoder = new JPGEncoder(quality);
var byteArray:ByteArray = jpg.encode(src);
我用了一個使用flash.display.Loader()將數組中加載圖像。它有一個完整的事件,在圖像加載後觸發。然後,我將該圖像繪製到一個位圖上,該位圖設置爲可放置在面板中的圖像的數據。希望你能從這個好運中做出。
public static function updateImage(img:Image, matrix:Matrix,
pageDTO:PageDTO, bitmapData:BitmapData):void {
var loader:flash.display.Loader = new flash.display.Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (e:Event) : void {
bitmapData.draw(loader.content, matrix);
pageViewer.data = new Bitmap(bitmapData);
});
loader.loadBytes(pageDTO.thumbnail);
}
<mx:Panel>
<mx:Image id="pageViewer"/>
</mx:Panel>
我有同樣的問題。作爲解決方法,我創建了嵌套在主Canvas中的子Canvas,並將子圖像添加到子Canvas後面的主Canvas中。子畫布上繪製的任何內容都將出現在圖像的頂部。
只需使用loadBytes函數將其加載到Loader實例中即可。
var ldr:Loader = new Loader();
ldr.loadBytes(myByteArray);
addChild(ldr);
在Flex 3或更高,你只需要做:
yourImage.source = yourByteArray;
的問候!
更多的信息會對您有所幫助。 – 2009-05-25 13:46:11