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

简介:

 

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

一:图片转字符

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

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

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

 

复制代码
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>Base64>ByteArray>Bitmap>DisplayObject

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

复制代码
As代码
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,如需转载请自行联系原作者



相关文章
|
安全 NoSQL Java
SpringSecurity原理简述(上)
SpringSecurity原理简述
576 2
|
应用服务中间件 Apache Windows
Windows平台及服务器部署安装多个Tomcat服务(详细版)
Windows平台及服务器部署安装多个Tomcat服务(详细版)
918 0
Windows平台及服务器部署安装多个Tomcat服务(详细版)
|
网络协议 安全 容灾
【华为HCIP | 高级网络工程师】刷题日记(2)
【华为HCIP | 高级网络工程师】刷题日记(2)
1838 0
如何使用Postman里的collections?
如何使用Postman里的collections?
434 0
|
3月前
|
传感器 监控 网络协议
【开源源码】基于 STM32智能温度监控系统 | 一个支持远程监控与告警的嵌入式实践项目
本项目基于STM32与μC/OS实时操作系统,结合LWIP协议栈,实现支持远程监控与告警的智能温度系统。通过多任务协同,完成温度采集、网络通信与阈值告警,支持手机App实时查看与配置。系统具备高实时性、稳定性与扩展性,是RTOS与物联网技术融合的典型嵌入式实践案例,开源可学,适用于工业、智能家居等场景。
【开源源码】基于 STM32智能温度监控系统 | 一个支持远程监控与告警的嵌入式实践项目
|
容器
UniApp scroll-view 事件不生效(@scroll、@scrolltolower、@scrolltoupper ...)
UniApp scroll-view 事件不生效(@scroll、@scrolltolower、@scrolltoupper ...)
3152 0
|
7月前
|
Kubernetes Cloud Native 持续交付
Docker:轻量级容器化技术解析
Docker:轻量级容器化技术解析
|
Java C# Python
线程等待(Thread Sleep)
线程等待是多线程编程中的一种同步机制,通过暂停当前线程的执行,让出CPU时间给其他线程。常用于需要程序暂停或等待其他线程完成操作的场景。不同语言中实现方式各异,如Java的`Thread.sleep(1000)`、C#的`Thread.Sleep(1000)`和Python的`time.sleep(1)`。使用时需注意避免死锁,并考虑其对程序响应性的影响。
387 8
|
前端开发 API 开发者
React 文件上传组件 File Upload
本文详细介绍了如何在 React 中实现文件上传组件,从基础的文件选择和上传到服务器,再到解决文件大小、类型限制、并发上传等问题,以及实现多文件上传、断点续传和文件预览等高级功能,帮助开发者高效构建可靠的应用。
1139 14
|
iOS开发 MacOS
解决CocoaPods安装卡住反应慢或失败
解决CocoaPods安装卡住反应慢或失败
3470 4