网站大量收购独家精品文档,联系QQ:2885784924

BMP图像结构分析.doc.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BMP图像结构分析.doc.doc

分析未知文件数据结构格式时需要熟悉不同文件类型的一种或多种该类公开文件的数据存储格式,因为通常情况下未知文件数据结构格式很可能是在公开的文件格式上建立起来的,或只稍微修改了一些地方。编程人员一般不会自己发明一种文件格式,因为编程人员大多数都很懒,他们通常的做法是参考一些公开文件的格式,稍微修改一下。 例如,如果要分析的未知文件格式是属于图像类的,那么这个未知的图像文件格式必定与BMP文件格式有相似的地方。熟悉BMP格式对研究和分析这个未知的图像文件格式有极大的帮助,如果掌握了BMP图像文件存储格式就可以利用BMP格式去匹配和猜测未知图像文件格式。 例如,如要分析的未知文件格式是属于3D模型的,那么这个未知的3D模型文件格式必定与3DS和X文件格式有相似的地方,所以研究未知的3D模型文件前需要先参考和学习一些常见的公开格式的模型文件,这与解密某个加密算法之前需要研究一些公开的加密算法是同一个道理。 因为本书是针对游戏资源文件解密,所以下面将要介绍和分析游戏资源文件的常用文件存储格式。游戏资源文件大体上可以归到多媒体数据格式上,学习和研究这些多媒体文件格式对日后分析未知的游戏资源文件格式有很大帮助。 通过本章的学习读者可以掌握以下内容: BMP图像文件格式; PNG图像文件格式; X模型文件格式; md3模型文件格式。 5.1? BMP图像文件格式 BMP图像文件格式是游戏中常用的图像资源文件格式,BMP图像文件起源早,程序员对BMP都比较熟悉,再加上BMP格式简单,读取和写入非常容易实现,所以无论Windows的还是Driect X,都有支持读取和写入BMP文件格式的API函数。 针对BMP压缩的算法比较成熟,压缩效果也不差,而且都是无损压缩编码,即可以100%还原BMP图像质量。 虽然JPG格式压缩效果比较理想,但游戏编程人员一般极少使用,因为JPG要牺牲图像的质量来换取大的压缩率,加上JPG解码速度较慢和格式复杂,所以游戏中使用JPG格式的图像的情况不多(笔者目前只发现一款网络游戏使用JPG格式作为游戏里的图像格式,并且使用额外的数据保存了图像中的透明通道信息来让JPG支持透明色)。GIF格式虽然支持多帧动画效果,但GIF最大仅支持256色,不能表达色彩丰富的图像,所以对于对速度要求非常苛刻而且图像质量要高的游戏来说,使用BMP格式存储图像是不错的选择。 5.1.1? BMP图像文件介绍 BMP图像文件格式是微软公司发明的,BMP图像文件的后缀名通常是.BMP,但也有少数是.DIP。不过单凭文件的后缀名并不能惟一确定是不是BMP图像文件,要惟一确定BMP图像文件还需要分析文件的存储格式。 BMP图像文件和GIF图像文件不同,BMP图像文件只能存储一幅图像,即一帧。GIF图像文件能保存多帧图像,从而可以实现动画的效果。 BMP图像文件支持单色、16色、256色和真彩色4种颜色的图像。BMP图像的数据即可压缩也可以不压缩,如果选择了压缩数据,那么根据颜色的不同,BMP使用不同的RLE压缩方式。 RLE是一种无损压缩方法,使用RLE压缩的数据能完整还原。如果图像是16色,则可以采用RLE4压缩,如果图像是256色,则可以采用RLE8压缩,真彩色的图像不使用压缩。 BMP的图像数据排列方式有点特别,BMP的图像数据排列方式首先从图像的左下角第一个像素开始存储每一行数据,即BMP图像数据存储的最后一个像素等于实际图像的右上角第一个像素。 5.1.2? BMP图像文件存储结构(1) BMP文件存储结构的格式可以在Windows中的WINGDI.h文件中找到定义。 BMP文件总体上由4部分组成,分别是位图文件头、位图信息头、调色板和图像数据,如表5-1所示。 表5-1?BMP文件的组成结构 bitmap-file header) 位图信息头(bitmap-information header) 彩色表/调色板(color table) 位图数据(bitmap-data) 下面来详细看一下每个组成部分的细节。 1.位图文件头(bitmap-file header) 位图文件头(bitmap-file header)包含了图像类型、图像大小、图像数据存放地址和两个保留未使用的字段。 打开WINGDI.h文件,搜索BITMAPFILEHEADER就可以定位到BMP文件的位图文件头的数据结构定义。 typedef struct tagBITMAPFILEHEADER { WORD??? bfType; DWORD?? bfSize; WORD??? bfReserved1; WORD??? bfReserved2; DWORD?? bfOffBits; } BITMAPFILEHEADER, FAR *LPBITMAPFILEH

文档评论(0)

000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档