我希望能夠通過在ByteArrays之間來回轉換來將圖像移入和移出Flex。我在這方面遇到了一些麻煩,所以我設計了一個簡單的測試程序,甚至是我無法工作。下面是我想對現在的代碼:Flex中的ByteArray圖像
protected function button3_clickHandler(event:MouseEvent):void
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler2);
loader.load(new URLRequest("file:///c:/win.jpg"));
}
private function loaderCompleteHandler2(event:Event):void
{
var loader:Loader = (event.target as LoaderInfo).loader;
var bmp:Bitmap = Bitmap(loader.content);
image1.source = bmp;
myBmpData = bmp.bitmapData;
myByteArray = bmp.bitmapData.getPixels(myBmpData.rect);
}
protected function button4_clickHandler(event:MouseEvent):void
{
var loader:Loader = new Loader();
loader.loadBytes(myByteArray);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteHandler);
}
private function loaderCompleteHandler(event:Event):void
{
var loader:Loader = (event.target as LoaderInfo).loader;
var bmp:Bitmap = Bitmap(loader.content);
image1.source = bmp;
}
到目前爲止,過程如下頂部到底部:點擊按鈕,如圖3所示,圖像顯示,一切都很順利。單擊按鈕4,然後收到「錯誤#2044:未處理的IOErrorEvent :. text =錯誤#2124:加載的文件是未知類型。」之後的行「loader.loadBytes(myByeArray);」在函數button4_clickHandler中。據我所知,我正在按照預期使用一切東西。我真的很感激任何建議,讓我朝着正確的方向前進。謝謝!
順便說一句,我使用JP Auclair的Base64類: http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/ – infomaniac 2010-07-07 08:20:45
該解決方案運行良好,但我遇到另一個問題:1.使用byteArray(壓縮或更改byteArray)從現有圖像2.deal中獲取byteArray並返回,然後我想要顯示一個新的Image,它使用新的byteArray,b64Img.source = Base64.encode(newBuyeArray) ,問題是圖像無法顯示 – jason 2012-04-18 03:26:51