把图片转化为二进制或字符串,用于在网络中发送与存储数据.
一:图片转字符
过程:DisplayObject>bitmapData>ByteArray>Base64>String
把图片转化为二进制或字符,使用AS3自带的JPEGEncoder和PNGEncoder,其中JPEG格式就算使用100%的品质在还原时还是失真得比较严重.
下面是把位图的bitmapData数据转化为二进制数据,再输出成字符串形式.
AS3代码
- var bitmapData:BitmapData = new BitmapData(image.width,image.height);
- bitmapData.draw(image);
- var encoder:PNGEncoder = new PNGEncoder();
- var bytes:ByteArray=encoder.encode(bitmapData);
- var Base64:Base64Encoder=new Base64Encoder;
- var imageStr:String=Base64.toString();
二:字符转图片
过程:String>Base64>ByteArray>Bitmap>DisplayObject
还原时,先使用Base64Decoder转为Base64编码的ByteArray,再用Loader对象来读取为Bitmap,完成还原过程.
AS3代码
- var spr:Sprite=new Sprite;
- var Base64:Base64Decoder=new Base64Decoder;
- Base64.decode(imageStr);
- var bytes:ByteArray=Base64.toByteArray();
- var load:Loader=new Loader();
- load.loadBytes(bytes);
- load.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
- function complete(event:Event):void {
- var bitMap:Bitmap=event.target.content as Bitmap;
- spr.addChild(bitMap);
- }
哈哈,不错,,,,
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。