在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);