2022年BMP格式详解 .pdf





《2022年BMP格式详解 .pdf》由会员分享,可在线阅读,更多相关《2022年BMP格式详解 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、BMP 格式详解2007-04-2408:13位图文件头的格式:typedefstructintbfType;/bfType(2字节),这里恒定等于 &H4D42,ASCII字符BMlongbfSize;/文件大小,以 4 字节为单位intbfReserve1;/备用intbfReserve2;/备用longbfoffBits;/数据区在文件中的位置偏移量BITMAPFILEHEADER;/ 文件头结构体, 14 字节typedefstructlongbitSize;/位图信息头大小longbiWidth;/图象宽度,像素单位longbiHeight;/图象高度,像素单位intbiPlanes
2、;/位平面树 =1intbiBitCount;/单位像素的位数,表示bmp图片的颜色位数,即24位图、32位图longbiCompression;/图片的压缩属性, bmp图片是不压缩的,等于0longbiSizeImage; 表示 bmp图片数据区的大小,当上一个属性biCompression等于 0 时,这里的值可以省略不填longbiXPlosPerMeter;/水平分辨率,可省略longbiYPlosPerMeter;/垂直分辨率,可省略longbiClrUsed;/表示使用了多少个颜色索引表,一般biBitCount属性小于16 才会用到,等于 0 时表示有 2biBitCount个
3、颜色索引表long biClrImportant;/表示有多少个重要的颜色, 等于 0 时表示所有颜色都很重要BITMAPINFOHEADER;/ 位图信息头, 40 字节BMP 文件详解( 2)2007-03-21 12:26 一个 bmp文件以 BITMAPFILEHEADER结构体开始, BITMAPFILEHEADER的第 1 个属性是 bfType(2 字节), 这里恒定等于 &H4D42 。由于内存中的数据排列高位在左, 低位在右,所以内存中从左往右看就显示成(424D),所以在 UltraEdit中头两个字节显示为 (42 4D)就是这样形成的,以后的数据都是这个特点,不再作重复
4、说明。BITMAPFILEHEADER的第 2 个属性是 bfSize(4字节),表示整个 bmp文件的大小,这里等于 &H000004F8=1272 字节。BITMAPFILEHEADER的第 3 个、第 4 个属性分别是 bfReserved1 、bfReserved2( 各2 字节),这里是 2 个保留属性,都为0,这里等于 &H0000 、&H0000 。BITMAPFILEHEADER的第 5 个属性是 bfOffBits(4字节),表示 DIB数据区在 bmp文件中的位置偏移量, 这里等于 &H00000076=118 ,表示数据区从文件开始往后数名师资料总结 - - -精品资料欢
5、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 的 118 字节开始。BITMAPFILEHEADER结构体这里就讲完了, 大家会发现 BITMAPFILEHEADER只占了bmp文件开始的 14字节长度,但需要特别说明的是在vb 中定义一个BITMAPFILEHEADER结构体变量,其长度占了16 个字节,原因就是第1 个属性本来应该只分配 2 个字节,但实际被分配了 4 个字节,多出来 2 个字节,所以如果想保存一张 bmp图片,写入 BITMAPFILEH
6、EADER结构体时一定要注意这一点。接下来是 BITMAPINFO 结构体部分。 BITMAPINFO 段由两部分组成:BITMAPINFOHEADER结构体和 RGBQUAD结构 体。其中 RGBQUAD结构体表示图片的颜色信息,有些时候可以省略,一般的24 位图片和 32 位图片都不带 RGBQUAD结构体,因为 DIB 数据区直接表示的 RGB 值,一般 4 位图片和 8 位图片才带有RGBQUAD结构体。 (多少位的图片就是用多少位来表示一个颜色信息,例如4 位图片表示用 4 个 bit来表示 一个颜色信息。 )一个 bmp文件中有没有 RGBQUAD结构体,可以根据前面BITMAPF
7、ILEHEADER结构体的第 5 个属性 bfOffBits来判断,因为 BITMAPINFOHEADER结构体长度为 40bit ,如果 BITMAPINFOHEADER结构体结束后还未到 DIB 数据区的偏移量,就说明接下来的数据是RGBQUAD结构体部分。这里讲的 C:WINDOWSBlueLace 16.bmp是一个 4bit图片,所以它带有RGBQUAD结构体。下面进入正题 BITMAPINFOHEADER部分。BITMAPINFOHEADER的第 1 个属性是 biSize(4字节),表示 BITMAPINFOHEADER结构体的长度,最常见的长度是40 字节,UltraEdit中
8、可以看到紧接着的4 个字节等于&H00000028=40 字节。BITMAPINFOHEADER的第 2 个属性是 biWidth(4字节),表示 bmp图片的宽度,这里等于&H00000030=48 像素。BITMAPINFOHEADER的第 3 个属性是 biHeight(4字节),表示 bmp图片的高度,这里等于 &H00000030=48 像素。BITMAPINFOHEADER的第 4 个属性是 biPlanes(2字节),表示 bmp图片的平面属,显然显示器只有一个平面,所以恒等于1,这里等于 &H0001 。BITMAPINFOHEADER的第 5 个属性是 biBitCount(
9、2字节),表示 bmp图片的颜色位数,即 24 位图、32 位图等等。这里等于 &H0004 ,表示该图片为4 位图。BITMAPINFOHEADER的第 6 个属性是 biCompression(4 字节),表示图片的压缩属性,bmp图片是不压缩的,等于0,所以这里为 &H00000000 。BITMAPINFOHEADER的第 7 个属性是 biSizeImage(4 字节),表示 bmp图片数据区的大小,当上一个熟悉 biCompression 等于 0 时,这里的值可以省略不填, 所以这里等于 &H00000000 。BITMAPINFOHEADER的第 8 个属性是 biXPelsP
10、erMeter(4字节),表示图片 X轴每名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 米多少像素,可省略,这里等于&H00000EC3=3779 像素/ 米。BITMAPINFOHEADER的第 9 个属性是 biYPelsPerMeter(4字节),表示图片 Y轴每米多少像素,可省略,这里等于&H00000EC3=3779 像素/ 米。BITMAPINFOHEADER的第 10 个属性是 biClrUsed(4字节),表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年BMP格式详解 2022 BMP 格式 详解

限制150内