brew数据压缩的实现

最近在做手机RPG游戏,涉及到的数据文件和图片文件非常多,于是进行压缩解压缩。做下笔记摘要。很多部分参考了前人的笔记,感谢前人给了肩膀站站 :]

 

一、主体思路:
1、将目标文件按GZIP格式压缩成压缩文件。
2、把压缩文件改成.bmp 的后缀,当作图片资源放入.bar资源文件里。
3、应用程序中使用ISHELL_LoadResDataEx加载资源,使用IUnzipAStream接口解压后以流方式读取。

 

二、说明:
1.windows OS环境下可以用7-zip软件来压缩。选择压缩格式为GZIP即可。
2.为什么要当成图片资源放入bar文件呢?
API中查看ISHELL_LoadResDataEx的说明,有如下一段:
nType: 资源类型: RESTYPE_STRING, RESTYPE_IMAGE, RESTYPE_DIALOG, RESTYPE_CONTROL, RESTYPE_LISTITEM(当前不支持), RESTYPE_BINARY(当前不支持);
所以以图片形式加入资源文件。
3.BREW游戏中,资源大概可以分为如下几类:图片;数据(如地图矩阵);声音;笔记并未全部覆盖,举一反三吧。

三、知识预习:
1.GZip算法
linux中常用的后缀为.gz的文件就是GZIP格式的。
GZIP文件由1到多个"块"组成,实际上通常只有1块,每块包含头、数据、尾三部分。
结构如下:
|ID1|ID2|CM|FLG|MTIME|XFL|OS|||CRC32|ISIZE|
重点关注:文件末尾4个字节是未压缩文件的大小的低32位。

2.解压缩数据转化图片时,需要对bmp文件格式有所了解。
请参考笔记"BMP文件结构概述"-地址:http://blog.csdn.net/yuyueliuliu/archive/2009/09/23/4584025.aspx
或百度。

 

四、源代码:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值