位图(Bitmap).docVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
位图(Bitmap)

说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP。由于没有经过任何的压缩,故BMP图 片往往很大。在Windows下,任何格式的图片文件都要转化为位图格式才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生 成的。 一、下面我们来看看位图文件(*.BMP)的格式。 位图文件主要分为如下4个部分: 块名称 ? 对应Windows结构体定义 ??                   大小(Byte) ? 文件信息头 BITMAPFILEHEADER                  14 ? 位图信息头 BITMAPINFOHEADER                  40 ? 颜色表(调色板)RGBQUAD                   (可选) ? 位图数据(RGB颜色阵列)                     BYTE* 由图像长宽尺寸决定 ? 1.文件信息头BITMAPFILEHEADER 结构体定义如下: typedef struct tagBITMAPFILEHEADER { UINT bfType;???? DWORD bfSize; UINT bfReserved1; UINT bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER; 其中: bfType           表示文件的类型,该值必需是0x4D42,也就是字符BM。 bfSize           表示该位图文件的大小,用字节为单位 bfReserved1       ? 保留,必须设置为0 bfReserved2       保留,必须设置为0 bfOffBits        ? 表示从文件头开始到实际的图象数据之间的字节的偏移量。这个参数是非常有用的,因为位图信息头               和调色板的长度会根据不同情况而变化,所以你可以用这个偏移值迅速的从文件中读取到位数据。 ? 2、位图信息头BITMAPINFOHEADER 结构体定义如下: typedef struct tagBITMAPINFOHEADER { DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; 其中: biSize       ?? 表示BITMAPINFOHEADER结构所需要的字节数。 biWidth       表示图象的宽度,以象素为单位。 biHeight       表示图象的高度,以象素为单位。注:这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。            如果该值是一个正数,说明图像是倒向的,如果该值是一个负数,则说明图像是正向的。大多数的BMP文件都是倒向的位图,也就是时,高度值是一个正数。 biPlanes      为目标设备说明位面数,其值将总是被设为1。 biBitCount     表示比特数/象素,其值为1、4、8、16、24、或32。但是由于我们平时用到的图像绝大部分是24位和32位的,所以我们讨论这两类图像。 biCompression  ? 表示图象数据压缩的类型,同样我们只讨论没有压缩的类型:BI_RGB。 biSizeImage    表示图象的大小,以字节为单位。当用BI_RGB格式时,可设置为0。 biXPelsPerMeter  表示水平分辨率,用象素/米表示。 biYPelsPerMeter  表示垂直分辨率,用象素/米表示。 biClrUsed     表示位图实际使用的彩色表中的颜色索引数(设为0的话,则说明使用所有调色板项)。 biClrImportant   表示对图象显示有重要影响的颜色索引的数目,如果是0,表示都重要。 ? 3、颜色表RGBQUAD: 颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。 这个部分是可选的,有些位图需要颜色表,有些位图,比如真彩色图(24位的BMP)就不需要颜色表,因为位图中的RGB值就代表了每个象素的颜色。但是16位r5g6b5位域彩色图像需要颜色表。 RGBQUAD结构的定义如下:   typedef struct tagRGBQUAD {   BY

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档