《热血传奇》wix、wil文件解析Java实现

解析的教程在网络上一抓一大把,我都分不清那个是原创了。不过有一点肯定的是,目前都没有Java版本,恩恩:),处于好奇,我稍稍用Java写了一个以供消遣。

 

写的过程中发现,其实教程有部分是错误的。而且很多地方也描述的不够详细,让我在实现的过程中走了不少弯路。还好有TC256编程的功底HOHO。

 

Wix文件格式说明

传奇的wix文件是索引文件,里面指出了图片素材的起始位置。

byte[44]是固定的头文件,网络上的教程都一律写成40个字节,实际上应该是44个。

byte[4]图片数量,低位在前,我在CommonUtil.bytesToInt的方法中实现了低位高位的转换,并且转成Java的整数输出

byte[?][4]这是一个二维数组,里面存储了每张图片在对应的wil文件中的起始位置。

remeber:起始位置是在wix中定义的,别妄想直接在wil文件中按照顺序弄出来,会吃闭门羹的。

 

Wil文件格式说明

byte[44]固定头文件

byte[12]应该是控制Frame播放的速度、是否重复之类的信息的,和我们无关

byte[1024]BMP中最重要的调色板实际上应该是byte[256][4]

-------以上是Wil文件头的固定格式,从下边开始则是每张位图的数据,位图的开始是在Wix中定义的---------

byte[2]宽度

byte[2]高度

byte[4]位图数据起始标志

byte[?]位图数据,大小为width * height

 

原图是8BIT的位图数据。为了减轻在Android上的开发负担,我擅自决定:解析时将其作为为背景透明的PNG图片文件格式,不喜者可以注释掉相关代码。

 

				// ---------- 增加下面的代码使得背景透明 -----------------
				image = g2d.getDeviceConfiguration().createCompatibleImage(
						width, height, Transparency.TRANSLUCENT);
				g2d.dispose();
				g2d = image.createGraphics();
				// ---------- 背景透明代码结束 -----------------
 

 

主要的格式说明就这些,具体的请看代码。代码在附件中,与此同时,我还提供了《热血传奇》的wix和wil文件。

 

太困了,睡觉....

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值