游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4241|回复: 5

关于大话2旧地图的读取

[复制链接]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-7-19 01:26:00 | 显示全部楼层 |阅读模式
最近自己想做个大话2单机玩,结果在读取地图文件卡了好几天了 [em7],新地图的读取解决了,旧地图的数据重组不知道该怎么弄。。。我是这样做的,(根据wangdali大大的代码)先读出JPGH头,把EO段的垂直和水平分辨率改为96, 把C0段的宽度和高度改为320和240,再读出JPEG数据,把子地图的尺寸(4字节)剔除,这样剩下的就是压缩数据了,在数据尾加上FFD9,然后和前面的头合并到一起。

结果出来的图是这样的。。。
[img][/img]

哪位大大能教教我该怎么做,实在没办法了才上来求教 [em6],给点提示也行,拜托啦。。。。。。

http://upload.gameres.com/20127/sf_1912318_6591.jpg

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2012-7-19 16:03:00 | 显示全部楼层

Re:关于大话2旧地图的读取

没人帮下么。。。。给点批评教育也好啊

0

主题

4

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2013-7-31 19:40:01 | 显示全部楼层
请问问题解决了么,我也想知道哦

0

主题

3

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2018-6-17 20:10:34 | 显示全部楼层
您好,请问您现在解决了吗?想跟您讨论一下

29

主题

81

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2018-6-19 23:15:40 | 显示全部楼层
旧地图有JPEG标记的块,这个块是地图的一个切分块。其中数据头4个字节标记该块的宽度和高度,接下来的数据是该分块中的MCU数据。用得到的宽高值计算出每行和每列的MCU个数,MCU是jpeg格式压缩的一个区块,每次解码一个区块。每个MCU数据前6个字节分别是Y Cb Cr分量的DC初始值。再接下来1个字节标识下一个字节开始的流数据从多少位(二进制位)开始读取,之前的位忽略,读取出来的数据就是 JPEG格式中对应的mcu的压缩数据,使用上述读取的初始值进行初始化后继续计算解码,就可以得到位图数据。

0

主题

3

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2018-6-20 22:48:46 | 显示全部楼层
foxer 发表于 2018-6-19 23:15
旧地图有JPEG标记的块,这个块是地图的一个切分块。其中数据头4个字节标记该块的宽度和高度,接下来的数据 ...

不知道我理解的对不对,您是说,每个MCU数据前6个字节分别是Y Cb Cr分量的DC初始值?

那比如现在一个地图块,共15行,每行16个MCU,这行中间的每个MCU都有一个6字节初始值?还是说每行只有一个?还是每个地图块一个?

感觉旧地图真的好麻烦。另外我搜到您以前的帖子,大话地图规则数据演示,这个附件无法下载,可否重传一份?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-24 12:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表