当前位置: 代码迷 >> Web前端 >> 图片与二进制及字符相交换化
  详细解决方案

图片与二进制及字符相交换化

热度:337   发布时间:2013-11-09 17:06:41.0
图片与二进制及字符相互换化

把图片转化为二进制或字符串,用于在网络中发送与存储数据.

一:图片转字符

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

把图片转化为二进制或字符,使用AS3自带的JPEGEncoder和PNGEncoder,其中JPEG格式就算使用100%的品质在还原时还是失真得比较严重.

下面是把位图的bitmapData数据转化为二进制数据,再输出成字符串形式.

AS3代码
  1. var?bitmapData:BitmapData?=?new?BitmapData(image.width,image.height);?????????? ??
  2. bitmapData.draw(image);//转化为BitmapData数据????????
  3. var?encoder:PNGEncoder?=?new?PNGEncoder();//也可以使用JPEG格式?new?JPEGEncoder(100)??????
  4. var?bytes:ByteArray=encoder.encode(bitmapData);//转化为二进制数据????????
  5. var?Base64:Base64Encoder=new?Base64Encoder;//将字符串或?ByteArray?编码为?Base64?编码的字符串。??????
  6. var?imageStr:String=Base64.toString();//输出为字符串???

二:字符转图片

过程:String>Base64>ByteArray>Bitmap>DisplayObject

还原时,先使用Base64Decoder转为Base64编码的ByteArray,再用Loader对象来读取为Bitmap,完成还原过程.

AS3代码
  1. var?spr:Sprite=new?Sprite; ??
  2. var?Base64:Base64Decoder=new?Base64Decoder; ??
  3. Base64.decode(imageStr);//读取字符串???
  4. var?bytes:ByteArray=Base64.toByteArray();//转化为ByteArray数据???
  5. var?load:Loader=new?Loader(); ??
  6. load.loadBytes(bytes);//读取ByteArray???
  7. load.contentLoaderInfo.addEventListener(Event.COMPLETE,?complete); ??
  8. function?complete(event:Event):void?{ ??
  9. ????var?bitMap:Bitmap=event.target.content?as?Bitmap;//读取Bitmap???
  10. ????spr.addChild(bitMap); ??
  11. }??

1 楼 LAFEU 2011-12-08  
var Base64:Base64Encoder=new Base64Encoder;//将字符串或 ByteArray 编码为 Base64 编码的字符串。
这句没有用到哪里写ByteArray啊? 怎么把ByteArray转为base64编码的字符串呢。这个问题困扰我很久了,拜托 
2 楼 yangxiutian 2011-12-22  
怎么不是Java代码
  相关解决方案