感谢大家继续收看。

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小动画:

还凑合吧,哈哈。

梦幻西游新资源的提取二相关推荐

  1. 萌新资源 | 3D基础——渲染基本原理介绍

    游戏最吸引人的地方,莫过于它为玩家构建了一个全新的世界.--但有没有人想过,这些丰富饱满的世界是怎样建构起来的呢?又是经过怎样的加工最终呈现在玩家的面前呢? MG大赛加油包还不够满足大家? 今日份的萌 ...

  2. 如何开发新资源?如何开发新的客户资源?

    如何开发新资源? 无论我们做什么业务,都是为了满足一些客户的需求,而这种需求的存在就是为了解决客户的痛点. 例如:做家政服务,做餐饮,做服装一定要找出谁有这种需求. 如何找到它? 首先,你必须了解你的 ...

  3. 用STM32实现:摄像头扫到二维码后提取二维码中的信息分别放到数组中

    摄像头扫到二维码后提取二维码中的信息分别放到数组中 把想要的信息编辑好放到二维码中(网上有好多在线生成二维码的工具) /** *作者:魏波 *时间:2017.6.6 * **/char name[6] ...

  4. TypeScript 3.0 新功能介绍(二)

    2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript 3.0 新功能介绍(二) TypeScript 3.0 新功能介绍(二) New unknown ...

  5. 分享15款为开发人员准备的开发移动应用程序必备的新资源和工具

    身为一名开发者,光有技术是不够的,必备的应用可以为您的开发工作如虎添翼.随着Android与iOS系统的不断更新换代,相关的的应用也层出不穷,随着移动应用程序的普及推动,很多新的方面被迅速发展, 下面 ...

  6. Java 8新特性探究(二)深入解析默认方法

    转载自 Java 8新特性探究(二)深入解析默认方法 什么是默认方法,为什么要有默认方法 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法.只需在方法名前面加个default关键字即可. ...

  7. 尚硅谷为什么免费开放资源_什么是开放游戏? 新资源

    尚硅谷为什么免费开放资源 今天,Opensource.com取得了一项重要成就: "什么是开放游戏"出版. ,一个新的资源页面. 我们从来不怕我们 对 开源游戏的 热爱 . 但是, ...

  8. Python BFS 提取二值图联通域

    <Python BFS 提取二值图联通域>    2016年实习那会儿在京东搞身份证 OCR,那时候的OCR是基于 CNN 的单字识别的pipeline,所以就需要一些方法来对字符进行切割 ...

  9. python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容

    python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容 1 pyzbar二维码检测模块 1.1. pyzbar模块介绍 1.2 pyzbar ...

最新文章

  1. 免费报名丨网易、腾讯、唯品会等100位名企超资深营销增长官,约你闭门“搞事情”...
  2. 常见硬件设计的EDA工具
  3. Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
  4. 前端小知识点(1):undefined和null区别
  5. kafka发送消息至指定分区
  6. spring整合dubbo实现简单分布式接口调用
  7. linux的基本使用方法,Linux/Unix基本使用方法
  8. sfc流程图怎么画_sfc第四次超级机器人大战流程图
  9. pku 2348 Euclid's Game
  10. js中的Math对象及属性
  11. 昆石VOS2009/VOS3000 2.1.6.00 新功能介绍目录
  12. 斯坦福大学公开课机器学习课程(Andrew Ng)六朴素贝叶斯算法
  13. 软件工程第三次作业——用户体验分析:以“南通大学教务学生管理系统”为例...
  14. android 人脸 动画表情包,天呐 原来动画角色的面部表情是这样做出来的
  15. 1.6 mocha配置文件的使用
  16. Dell 3620 加装SSD遇到的磁盘100%的坑
  17. ionic 应用在iOS上打开相机拍照闪退、百度地图/高德地图定位失败(解决方案)
  18. c语言 前置声明,C语言编程开发前置声明都有哪些作用
  19. Kafka 的 ISR 副本同步队列
  20. 电脑解锁后黑屏有鼠标_电脑黑屏后屏幕只有鼠标怎么办呢?

热门文章

  1. 软文网络推广的优势在哪里?推广技巧分享
  2. web 前端知识体系
  3. 转 : Squareup刷卡器,音频读卡识别android/iOS源码API
  4. ThinkPad R61、X61安装双系统(Vista32、XP)的一些常见问题及解决
  5. 使用itchat开发某信群聊机器人-功能一瞥
  6. 2021年中国航天发射记录(进行中)
  7. 转载:mysql 5.7.10 安装配置方法图文教程——来自脚本之家网,作者是汤高
  8. D55XT160-ASEMI大功率三相整流桥55A 1600V
  9. #用数组实现把十进制数转化为二进制数
  10. 【优秀的iPhone/iPad数据恢复工具】Omni Recover for Mac 2.5