在as3图像编程中经常涉及到bitmapdata与bytearray之间的互转以及存储:
如:flash端bitmapdata要保存为服务器端pic,flash端bitmapdata要保存到本地sharedobject等等
bitmapdata转换为bytearray有两种方式:
1、原始的保存各个像素点RGBA数据的bytearray
通过getPixels(rect:Rectangle) 方法,从像素数据的矩形区域生成一个字节数组。为每个像素将一个无符号整数(32位4字节RGBA未经相乘的像素值)写入字节数组。
这种方式得到的bytearray体积相当大,因为保存的是最原始的各个像素的信息。
经测试,一个1024*1024大小的bitmapdata,通过此方式转换为bytearray并保存在sharedobject中有4M之巨!其实手工算一下也应如此:1024*1024*4/1024/1024 = 4
通过此方式保存的bytearray,可以直接读取出来利用setPixels方法还原得到bitmapdata
2、通过encoder转换压缩后的bytearray
通过PNGEncoder、JPEGEncoder对bitmapdata进行encode转换为对应图像格式的bytearray,这时会根据对应图像格式的压缩算法转换为编码图像的bytearray,如JPEGEncoder 类使用联合图像专家组 (JPEG) 压缩将原始的位图图像转换为编码图像,PNGEncoder 类使用便携网络图形 (PNG) 无损压缩将原始位图图像转换为编码图像。
通过此方式保存的bytearray自然体积较小,如果要还原为bitmapdata,只能通过Loader.loadBytes(bytes:ByteArray, context:LoaderContext)方法获取出图像,当然此时的bitmapdata已经不是完全完整的原bitmapdata了。
AS3 bitmapdata与bytearray转换
发表于2008年8月26日 17:52:00 更新于2008年8月26日 18:53:00
评论
sshong2008年9月26日 06:57 回复
我的理解是需要将前台图形图像操作以及数据与后台进行交互保存、读取的相关编程
aslearner2008年9月25日 14:26
拜读,请问博主的as3图像编程主要涉及什么呢?
aslearner2008年9月25日 14:26
拜读,请问博主的as3图像编程主要涉及什么呢?
添加评论
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang 最近发表
- js的锁以及异步调用相关(2024年11月30日 10:58:51)
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
- php图片加水印(2014年8月15日 22:50:42)
- windows查看端口占用情况(2014年7月31日 21:19:30)
最近回复