`
wgcode
  • 浏览: 578140 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

 
阅读更多

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

一:图片转字符

过程: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. }  

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

相关推荐

    C# 图片与Base64码的相互转化问题(代码详解)

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64编码是从二进制到字符的过程,可用于...

    EXCEL集成工具箱V6.0

    常 用 工 具 【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动...

    EXCEL集成工具箱V8.0完整增强版(精简)

    【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动复制功能。本...

    C#编程经验技巧宝典

    98 <br>0153 如何自定义数字小数点左边分组位数 98 <br>0154 格式化输入数据为货币格式 99 <br>0155 如何计算两个整数的乘积 99 <br>0156 如何将二进制数转换为十进制数 100 <br>0157 如何...

    易语言540个易模块

    数值与十六进制文本的相互转换 数制转换(修该) 双功能自动编号模块 缩放多文档支持库 所有模块 锁键盘数标 T TCP服务器 TWnet.CN 弹出网页广告 弹出下载窗口 特效窗口模块 提升权限 提示框模块2.6 提示框...

    Java范例开发大全 (源程序)

     实例130 对象的序列化与反序列化 185  实例131 同时显示多个文件 187  实例132 生成zip压缩文件 189  实例133 解压缩zip文件 192  实例134 生成Excel文件 194  实例135 读取Excel文件中的内容 198  ...

    java范例开发大全(pdf&源码)

    实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel文件中的内容 198 实例136 生成PDF文件 ...

    java范例开发大全源代码

     实例130 对象的序列化与反序列化 185  实例131 同时显示多个文件 187  实例132 生成zip压缩文件 189  实例133 解压缩zip文件 192  实例134 生成Excel文件 194  实例135 读取Excel文件中的内容 198 ...

    java范例开发大全

    实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel文件中的内容 198 实例136 生成PDF文件 ...

    1345个易语言模块

    二进制到三十六进制.ec 互 联网扩展模块1.1.ec 互联网扩展模块1[1].1.ec 五笔编码查询模块.ec 代码编辑器部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真...

    1350多个精品易语言模块

    二进制到三十六进制.ec 互 联网扩展模块1.1.ec 互联网扩展模块1[1].1.ec 五笔编码查询模块.ec 代码编辑器部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真...

    易语言模块914个

    取IP及地理位置模块.ec 取IP地址.ec 取mdb表名.ec 取mp3信息模块.ec 取功能键状态.ec 取十进制.ec 取句柄对应全路径文件名2.1.ec 取图片尺寸.ec 取声调拼音模块1.0.ec 取姓名.ec 取拼音带声调1.2.ec 取...

    Java范例开发大全(全书源程序)

    实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel文件中的内容 198 实例136 生成PDF...

    精通javascript

    • 3.3.htm 数值型数据与字符串连接 • 3.4.htm 数值型数据与字符串连接 • 3.5.htm 减号的取反功能 • 3.6.htm 对变量赋常量值 • 3.7.htm 对变量赋常量值 • 3.8....

    精通JavaScript

    • 3.3.htm 数值型数据与字符串连接 • 3.4.htm 数值型数据与字符串连接 • 3.5.htm 减号的取反功能 • 3.6.htm 对变量赋常量值 • 3.7.htm 对变量赋常量值 • 3.8....

Global site tag (gtag.js) - Google Analytics