高分请教 有关png文件与dat文件之间关系的问题!不知道PNG的数据是怎么导入到DAT文件里的呢?

aimalover 2003-10-24 01:44:04
我看的这个原代码,里面显示的有很多图片。可是在res里也只有两三张图片而已。剩余的都是.dat文件。并在程序代码段中,看到下面的语句:
private final static short IMG_SIZE[] =
{
154, 401, 336, 409, 402, 430, 384, 407, 398, 383, 400, 338, 222, 401, 403, 406, 390, 344, 408, 412, 420, 381, 425, 437,
.......
}; //p11
这个p11就是其中一个dat文件的名字。
我想知道,图片是如何导入到.dat文件里去的呢?因为.dat文件打不开,没法分析是怎么操作其中的数据的。
有工具能把png文件直接转换成二进制还有代码段吗?是什么工具?
我现在就是想把这个程序里的图片缩小,以配合小屏幕的尺寸。因为现在dat文件的问题,让我无从下手,不知道缩小之后怎么替换掉dat文件里面以前的数据。
希望得到大家的帮助!
...全文
537 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
aimalover 2003-10-27
  • 打赏
  • 举报
回复
To小强:那应该增加一个空白的图片,或者你的消失动画图片。添加到你的dat文件中去。因为我已经有源图片了。我还不太清楚怎么能把dat文件分解成真正的图片,存在硬盘中的。如果只是在程序中才能拆分读图片的话,怎么在程序中把图片合成dat文件呢?我只是会用工具把图片合成dat。我现在还是只知其一,不知其二,知其然不知其所以然。
aimalover 2003-10-27
  • 打赏
  • 举报
回复
To寂微:我现在有工具了。看到把图片转成DAT文件的时候,自动生成DAT文件和要在程序中插入的原代码。也已经知道该怎么解决我问的这个问题了,谢谢你。
可是我不理解为什么非得把图片转成DAT文件再在程序中读出来,为什么不把图片直接放在res文件夹里读呢?这样做是有什么好处吗?
还有,如果要绘一个一直向右走的小人儿。是在不停改变的坐标上重绘由几个静止图片组成的小人儿吗?我这好像是第二个问题了,但是想连带的问一句。
liuyushen 2003-10-27
  • 打赏
  • 举报
回复
nImgSizeOffset += IMG_SIZE[nSizeIndex];//这两句就是把小图片组合起来是么?
这不是把图片和起来。图片本来已经被一起存到dat里了。这句是调整offset,好正确读取下一个图片。
这些都是读代码读出来的,没有什么书介绍。有一次反汇编一个J2ME游戏,就是这么实现的。
minj2me 2003-10-25
  • 打赏
  • 举报
回复
例如我的子弹打中了在dat文件中的树图片,然另其消失,那么要怎么改呢?是否要再读dat文件,修改它的内容呢?
minj2me 2003-10-25
  • 打赏
  • 举报
回复
请问如果我想在游戏运行时要改变图片的状态,是否要再读dat文件,修改它的内容呢?
aimalover 2003-10-24
  • 打赏
  • 举报
回复
to无笑:我的是变小了。有些图片没看到,没算上。小了一倍呢。不过我还没研究那个工具。稍侯研究。。
aimalover 2003-10-24
  • 打赏
  • 举报
回复
to寂微:谢谢.^_^我看到我的源程序有这段儿了。
is = getClass().getResourceAsStream(strDir + ".dat);
is.read(IMG_BUFFER);
...
img[img_index] = Image.createImage(IMG_BUFFER, nImgSizeOffset, IMG_SIZE[nSizeIndex]);
nImgSizeOffset += IMG_SIZE[nSizeIndex];//这两句就是把小图片组合起来是么?
对这些过程还不是很清晰。我的《手机程序开发》-微型爪哇人 书上没有讲这些,从哪里可以看到对这个的介绍?能推荐什么好书或者好网站吗?我去网站也就是cnjm,j2mer,csdn,赛迪。还有哪些没搜罗到?

aimalover 2003-10-24
  • 打赏
  • 举报
回复
to无笑:我的也是变大。不过也就10倍吧,差不多了。我新找到一个工具,研究研究再说。
liuyushen 2003-10-24
  • 打赏
  • 举报
回复
注意 is=getClass().getResourceAsStream("data文件");这样的命令

然后is.read(byte[], from .., to ...) 就从data里读出一段数据,然后用byte[]生成Image了.
用一些二进制的编辑器,把这个date按照from ..,to ...拆分成一个个图片文件.然后换成你的文件,再把他们合成一个dat文件.当然IMG_SIZE的数值要根据你的具体情况进行修改了
nbltg 2003-10-24
  • 打赏
  • 举报
回复
我用工具将png转换成数组后,本来6K多的图片变成了1.1M的一个文件,吓了我一跳
你要那工具的话,给我你的邮箱

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧