BitmapData與ByteArray的操作

在Flash內,我們如果需要對外部載入圖檔,或是stage上的Sprite
做一些點陣圖形的操作(變形旋轉或其他)
要將處理過後的點陣資料,做頁面上顯示或是另做檔案儲存
在這過程中,都是在於DisplayObject,BitmapData與ByteArray這三者的轉換處理
以下是常用處理範例
BitmapData操作
1.如何取得DisplayObject的bitmapData

var bitmapData:BitmapData=new BitmapData();

bitmapData.draw(DisplayObject) 
2.如何取得外部圖檔或swf的bitmapData
(也就是將外部檔案寫到bitmapData內)
1.利用Loader載入外部檔案

var loader:Loade=new Loader()

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);

loader.load(‘xxx.jpg’);
2.載入完成後,將載入資料寫到bitmapData內

var bitmapData:BitmapData=new BitmapData();

bitmapData.draw(loader)

3.如何將bitmapData變成一個DisplayObject

var bitmapData:BitmapData=new BitmapData();

var bitmap:Bitmap=new Bitmap(bitmapData);

DisplayObjectContainer.addChild(bitmap); 
4.如何將bitmapData變成byteArray
如果要將圖檔以資料方式傳到Server上,要轉成byteArray形式才能上傳

var byteArray:ByteArray=JPEGEncoder.ecncode(bitmapdata)

ByteArray操作
1.如何將byteArray變成一個實體檔案

var targetFile:File =File.createTempFile();

var stream:FileStream = new FileStream();

stream.open(targetFile, FileMode.WRITE)

stream.writeBytes(byteArray, 0, 0);

stream.close(); 
2.如何將byteArray變成bitmapData

var bitmapData:BitmapData=new BitmapData();

bitmapData.setPixels(new Rectangle(),byteArray);

本篇發表於 Adobe Flex。將永久鏈結加入書籤。

發佈留言