梦幻西游新资源的提取二
感谢大家继续收看。
v3d.dat 的格式分析
文件开头同样是一个
typedef struct {
unsigned long flag; // 'v3dd'
unsigned long version; // 版本号 0x10005 等
} v3dd_file_header;
接着就是一帧一帧的图片数据,可以根据 v3dh 中的 dat_offset_list[] 来定位。
下面对定位后的一帧数据进行分析。
unsigned short Size; // 此帧数据的大小,不包含这2字节
typedef struct {
long keyx; // 很常见的一个结构,不多废话
long keyy;
long width;
long height;
} v3dd_frame_header;
接下来,可能存在一个512字节的16位调色板,也可能不存在,这完全取决于xyqsvc.exe渲染图片时是否正确加载了mypal.wdf里的调色板。
然后是每一行数据的偏移地址,这一点与was图片格式一样,因为它要支持边解压边绘制。此外,数据的压缩格式与was图片也是一样的。
判断是否存在512字节内置调色板的方法是,判断帧数据开始16字节处(也就是height后面)的4字节数据的值是否为图片高度的4倍再加16,如果为真,那么基本可以确定不包含内置调色板。
至此,缓存文件分析完毕。
根据以上分析,我写了一个提取工具,如图:
拿提取的图片做了个gif小动画:
还凑合吧,哈哈。
梦幻西游新资源的提取二相关推荐
- 萌新资源 | 3D基础——渲染基本原理介绍
游戏最吸引人的地方,莫过于它为玩家构建了一个全新的世界.--但有没有人想过,这些丰富饱满的世界是怎样建构起来的呢?又是经过怎样的加工最终呈现在玩家的面前呢? MG大赛加油包还不够满足大家? 今日份的萌 ...
- 如何开发新资源?如何开发新的客户资源?
如何开发新资源? 无论我们做什么业务,都是为了满足一些客户的需求,而这种需求的存在就是为了解决客户的痛点. 例如:做家政服务,做餐饮,做服装一定要找出谁有这种需求. 如何找到它? 首先,你必须了解你的 ...
- 用STM32实现:摄像头扫到二维码后提取二维码中的信息分别放到数组中
摄像头扫到二维码后提取二维码中的信息分别放到数组中 把想要的信息编辑好放到二维码中(网上有好多在线生成二维码的工具) /** *作者:魏波 *时间:2017.6.6 * **/char name[6] ...
- TypeScript 3.0 新功能介绍(二)
2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript 3.0 新功能介绍(二) TypeScript 3.0 新功能介绍(二) New unknown ...
- 分享15款为开发人员准备的开发移动应用程序必备的新资源和工具
身为一名开发者,光有技术是不够的,必备的应用可以为您的开发工作如虎添翼.随着Android与iOS系统的不断更新换代,相关的的应用也层出不穷,随着移动应用程序的普及推动,很多新的方面被迅速发展, 下面 ...
- Java 8新特性探究(二)深入解析默认方法
转载自 Java 8新特性探究(二)深入解析默认方法 什么是默认方法,为什么要有默认方法 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法.只需在方法名前面加个default关键字即可. ...
- 尚硅谷为什么免费开放资源_什么是开放游戏? 新资源
尚硅谷为什么免费开放资源 今天,Opensource.com取得了一项重要成就: "什么是开放游戏"出版. ,一个新的资源页面. 我们从来不怕我们 对 开源游戏的 热爱 . 但是, ...
- Python BFS 提取二值图联通域
<Python BFS 提取二值图联通域> 2016年实习那会儿在京东搞身份证 OCR,那时候的OCR是基于 CNN 的单字识别的pipeline,所以就需要一些方法来对字符进行切割 ...
- python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容
python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容 1 pyzbar二维码检测模块 1.1. pyzbar模块介绍 1.2 pyzbar ...
最新文章
- 免费报名丨网易、腾讯、唯品会等100位名企超资深营销增长官,约你闭门“搞事情”...
- 常见硬件设计的EDA工具
- Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
- 前端小知识点(1):undefined和null区别
- kafka发送消息至指定分区
- spring整合dubbo实现简单分布式接口调用
- linux的基本使用方法,Linux/Unix基本使用方法
- sfc流程图怎么画_sfc第四次超级机器人大战流程图
- pku 2348 Euclid's Game
- js中的Math对象及属性
- 昆石VOS2009/VOS3000 2.1.6.00 新功能介绍目录
- 斯坦福大学公开课机器学习课程(Andrew Ng)六朴素贝叶斯算法
- 软件工程第三次作业——用户体验分析:以“南通大学教务学生管理系统”为例...
- android 人脸 动画表情包,天呐 原来动画角色的面部表情是这样做出来的
- 1.6 mocha配置文件的使用
- Dell 3620 加装SSD遇到的磁盘100%的坑
- ionic 应用在iOS上打开相机拍照闪退、百度地图/高德地图定位失败(解决方案)
- c语言 前置声明,C语言编程开发前置声明都有哪些作用
- Kafka 的 ISR 副本同步队列
- 电脑解锁后黑屏有鼠标_电脑黑屏后屏幕只有鼠标怎么办呢?
热门文章
- 软文网络推广的优势在哪里?推广技巧分享
- web 前端知识体系
- 转 : Squareup刷卡器,音频读卡识别android/iOS源码API
- ThinkPad R61、X61安装双系统(Vista32、XP)的一些常见问题及解决
- 使用itchat开发某信群聊机器人-功能一瞥
- 2021年中国航天发射记录(进行中)
- 转载:mysql 5.7.10 安装配置方法图文教程——来自脚本之家网,作者是汤高
- D55XT160-ASEMI大功率三相整流桥55A 1600V
- #用数组实现把十进制数转化为二进制数
- 【优秀的iPhone/iPad数据恢复工具】Omni Recover for Mac 2.5