解析的教程在网络上一抓一大把,我都分不清那个是原创了。不过有一点肯定的是,目前都没有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文件。
太困了,睡觉....