天天看點

圖檔與二進制及字元互相換化(轉)

把圖檔轉化為二進制或字元串,用于在網絡中發送與存儲資料.

一:圖檔轉字元

過程:DisplayObject>bitmapData>ByteArray>Base64>String

把圖檔轉化為二進制或字元,使用AS3自帶的JPEGEncoder和PNGEncoder,其中JPEG格式就算使用100%的品質在還原時還是失真得比較嚴重.

下面是把位圖的bitmapData資料轉化為二進制資料,再輸出成字元串形式.

<a></a>

圖檔與二進制及字元互相換化(轉)

As代碼

ar bitmapData:BitmapData = new BitmapData(image.width,image.height);              

bitmapData.draw(image);//轉化為BitmapData資料         

var encoder:PNGEncoder = new PNGEncoder();//也可以使用JPEG格式 new JPEGEncoder(100)       

var bytes:ByteArray=encoder.encode(bitmapData);//轉化為二進制資料         

var Base64:Base64Encoder=new Base64Encoder;//将字元串或 ByteArray 編碼為 Base64 編碼的字元串。       

var imageStr:String=Base64.toString();//輸出為字元串 

二:字元轉圖檔

過程:String&gt;Base64&gt;ByteArray&gt;Bitmap&gt;DisplayObject

還原時,先使用Base64Decoder轉為Base64編碼的ByteArray,再用Loader對象來讀取為Bitmap,完成還原過程.

圖檔與二進制及字元互相換化(轉)

var spr:Sprite=new Sprite;    

var Base64:Base64Decoder=new Base64Decoder;    

Base64.decode(imageStr);//讀取字元串    

var bytes:ByteArray=Base64.toByteArray();//轉化為ByteArray資料    

var load:Loader=new Loader();    

load.loadBytes(bytes);//讀取ByteArray    

load.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);    

function complete(event:Event):void {    

    var bitMap:Bitmap=event.target.content as Bitmap;//讀取Bitmap    

    spr.addChild(bitMap);    

}  

    本文轉自 OldHawk  部落格園部落格,原文連結http://www.cnblogs.com/taobataoma/archive/2009/10/23/1588577.html,如需轉載請自行聯系原作者