下载此文档

BMP文件结构的探索.doc


文档分类:行业资料 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
BMP文件结构的探索.docBMP文件结构的探索 Whatlf2004-9-10 一、文件格式Bmp文件是非常常用的位 图文件,无论是游戏还是其他都被广泛使用。针对bmp文件的处理也有一堆现成 的api进行调用,然而文件内部究竟怎样,如何自己来解析这样的文件呢?为了消 除无聊,我用了几 天时间来研究了一下,同时作为学****笔记,进行记录。首先, 整个bmp文件的内容可以分为3到4块。之所以分为3到4块而不是固定的 值,是因为,对于bmp来说可能存在调色板或者一些掩码。具体稍候讨论。第一 块是bmp的文件头用于描述整个bmp文件的情况。结构如下:typedef struct tagBITMAPFILEHEADER ( WORD DWORD WORD WORD DWORD bfType;
bfSize; bfReservedl; bfReserved2; bfOffBits; } BITMAPFILEHEADER, *PBITMAPFILEHEADER;这些信息相当有用,如果你想直接来解析bmp文件。 第一个bfType用于表示文件类型,如果它是bmp文件,那么它这个位置的值一 定是”BM”也就是0x4D42。第二个bfSize表示整个文件的字节数。第三第四个 则保留,目前无意义,最后一个相当重要,表示,位图的数据信息离文件头的偏移 量,以字节为单位。第二块是位图信息头,即BITMAPINFOHEADER,用于描 述整个位图文件的情况。以下挑重要的数据进行解释typedefstruct
tagBITMAPINFOHEADER( DWORD LONG LONG WORD WORD DWORD DWORD LONG LONG DWORD DWORD biSize; //表示本结构的大小 biWidth; 〃位 图的宽度biHeight; 〃位图的高度biPlanes; 〃永远为1,由于没有用过所以没做研 究附msdn解释biBitCount;//位图的位数分为1 4 8 16 24 32本文没对14进行 研究 //Specifies the number of planes for the target device. This value must be set to 1. biCompression;//本以为压缩类型,但是却另外有作用,稍候解释biSizeimage; //表 示位图数据区域的大小以字节为单位biXPelsPerMeter; biYPelsPerMeter; biClrUsed; biClrlmportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER;第三块就 是调色板信息或者掩码部分,如果是8位位图则存放调色板;与32位位图 则存放RGB 16颜色的掩码,这些掩码以DWORD大小来存放。最后一块就是 位图的数据实体。以上文件信息可以在任意一篇bmp文件结构的文章中找到描 述,所以本文只是稍微带过。
二、4字节对其问题关于数据读取。Bmp文件有个重要特性,那就是对于数据区 域而言,每行的数据它必须凑满4字节,如果没有满,则用冗余的数据来补齐。 这个特性直接影响到我们读取位图数据的方法,因为在我们看来(x,y)的数据应 该在y*width+x这样的位置上但是因为会有冗余信息那么必须将width用 width+该行的冗余量来

BMP文件结构的探索 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小雄
  • 文件大小84 KB
  • 时间2021-05-15