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

BMP图片格式详解.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BMP图像格式详解 一.简介 BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP图象文件格式称为设备无关位图DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBlt()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。 二.BMP格式结构 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: ◆ 位图文件头(bmp file header): 提供文件的格式、大小等信息 ◆ 位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息 ◆ 调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表 ◆ 位图数据(bitmap data):图像数据区 BMP图片文件数据表如下: 数据段名称 大小(byte) 开始地址 结束地址 位图文件头(bitmap-file header) 14 0000h 000Dh 位图信息头(bitmap-information header) 40 000Eh 0035h 调色板(color table) 由biBitCount决定 0036h 未知 图片点阵数据(bitmap data) 由图片大小和颜色定 未知 未知 三.BMP文件头 BMP文件头结构体定义如下: typedef struct tagBITMAPFILEHEADER { UINT16 bfType; //2Bytes,必须为BM,即0x424D 才是Windows位图文件 DWORD bfSize; //4Bytes,整个BMP文件的大小 UINT16 bfReserved1; //2Bytes,保留,为0 UINT16 bfReserved2; //2Bytes,保留,为0 DWORD bfOffBits; //4Bytes,文件起始位置到图像像素数据的字节偏移量 } BITMAPFILEHEADER; BMP文件头数据表如下: 变量名 地址偏移 大小 作用说明 bfType 0000h 2Bytes 文件标识符,必须为BM,即0x424D 才是Windows位图文件 ‘BM’:Windows 3.1x, 95, NT, …   ‘BA’:OS/2 Bitmap Array   ‘CI’:OS/2 Color Icon    ‘CP’:OS/2 Color Pointer   ‘IC’:OS/2 Icon    ‘PT’:OS/2 Pointer 因为OS/2系统并没有被普及开,所以在编程时,你只需判断第一个标识“BM”就行 bfSize 0002h 4Bytes 整个BMP文件的大小(以位B为单位) bfReserved1 0006h 2Bytes 保留,必须设置为0 bfReserved2 0008h 2Bytes 保留,必须设置为0 bfOffBits 000Ah 4Bytes 说明从文件头0000h开始到图像像素数据的字节偏移量(以字节Bytes为单位),以为位图的调色板长度根据位图格式不同而变化,可以用这个偏移量快速从文件中读取图像数据 四.BMP信息头 BMP信息头结构体定义如下: typedef struct _tagBMP_INFOHEADER { DWORD biSize; //4Bytes,INFOHEADER结构体大小,存在其他版本I NFOHEADER,用作区分 LONG biWidth; //4Bytes,图像宽度(以像素为单位) LONG biHeight; //4Bytes,图像高度,+:图像存储顺序为Bottom2Top,-:Top2Bottom WORD biPlanes; //2Bytes,图像数据平面,BMP存储RGB数据,因此总为1 WORD biBitCount; //2

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档