bmp图象格式简介

上传人:第*** 文档编号:38793356 上传时间:2018-05-07 格式:DOC 页数:4 大小:54.50KB
返回 下载 相关 举报
bmp图象格式简介_第1页
第1页 / 共4页
bmp图象格式简介_第2页
第2页 / 共4页
bmp图象格式简介_第3页
第3页 / 共4页
bmp图象格式简介_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《bmp图象格式简介》由会员分享,可在线阅读,更多相关《bmp图象格式简介(4页珍藏版)》请在金锄头文库上搜索。

1、1BMPBMP 图像格式简介图像格式简介BMP 文件由文件头(包括 BITMAPFILEHEADER 和 BITMAPINFOHEADER),调色板 (PALETTE)以及图像数据(DATA)构成。1. 文件头:共计 54Byte(以下简记为 B,b 代表 bit)包含两个部分,第一是包含 BMP 文件类型,大小,打印格式,称为 BITMAPFILEHEADER,定义如下:偏移量:013,共计 14Btypedef struct tagBITMAPFILEHEADER WORD bftype; /数据地址为 0,类型 unsigned char,内容BM ,表明图像格式DWORD bfsize

2、; /数据地址为 2,类型 unsigned long,以字节为单位定义图像文件的大小WORD bfReserved1; /数据地址为 6,类型 unsigned int,保留字WORD bfReserved2; /数据地址为 8,类型 unsigned int,保留字DWORD bfoffBits; /数据地址为 10,类型 unsigned long,以字节为单位指示图像数据在文 件中的起始地址,即图像数据相对文件头的偏移量第二部分说明位图的大小等数据,定义如下:偏移量 1453:共计 40Btypedef struct tagBITMAPINFOHEADERDWORD bisize; /

3、数据地址为 14,类型 unsigned long,以字节为单位指示本结构 (BITMAPINFOHEADER)的存储容量,固定为 40/28H。 (有改动,最好读取具体的值, 而不要直接使用定值。 )DWORD biwidth; /数据地址为 18,类型 unsigned long,以象素为单位给出 BMP 图像的 宽DWORD biheight; /数据地址为 22,类型 unsigned long,以象素为单位给出 BMP 图像的 高WORD biplants; /数据地址为 26,类型 unsigned int,代表目标设备的平面数目为 1WORD bibitcount; /数据地址为

4、 28,类型 unsigned int,确定每个象素所需位数,单色取 1,16 色取 4,256 色取 8,真彩取 24DWORD bicompression; /数据地址为 30,类型 unsigned long,表明是否压缩2DWORD bisizeimage; /数据地址为 34,类型 unsigned long,以字节为单位给出 BMP 类图 像数据占有空间大小,未压缩图像取为 0(不一定)DWORD bixpeispermeter; /数据地址为 38,类型 unsigned long,垂直分辨率DWORD biypeispermeter; /数据地址为 42,类型 unsigned

5、 long,水平分辨率DWORD biclrused; /数据地址为 46,类型 unsigned long,位图使用颜色数DWORD biclrimportant; /数据地址为 50,类型 unsigned long,位图使用重要颜色数2. 调色板调色板调色板存在于 256 色(8 位) ,16 色(4 位)和单色(1 位)图像中,真彩(24 位)图像没 有调色板。无论是单色、16 色还是 256 色,调色板中每 4 个字节对应一种颜色,分别表示蓝色(B) 、 绿色(G) 、红色(R)和保留(置零) 。单色图像调色板从 0036H 开始,共 8 字节(如:黑白 00 00 00 00 FF

6、 FF FF 00) 。16 色图像,调色板从 0036H 开始,共 16*4B64B。后接图像数据,每 4 位表示一个 数据(调色板索引) 。(需要验证。单色、256色、24位真彩都验证过了。 )256 色图像,调色板从 0036H 开始,共 256*4B1024B1KB400H。图像数据从 0436H 开始,每 8 位表示一个数据(调色板索引) 。3. 图像数据单色、单色、16 色和色和 256 色图像:数据部分的值并非图像的颜色值,而是调色板的索引值。色图像:数据部分的值并非图像的颜色值,而是调色板的索引值。 24 位真彩图像:数据部分的值就是图像的颜色值。每位真彩图像:数据部分的值就是

7、图像的颜色值。每 3 个字节表示一个像素,分别代表个字节表示一个像素,分别代表 B、G、R 三个分量的强度值。三个分量的强度值。BMP 图像的图像数据部分通常是按逆序排列的,即数据的第一行是屏幕显示的最后一行 (如果图像高度参数 biHeight 为负,则是自上而下的) 。BMP 图像文件在存储每一行像素 值时,如果存储该行像素值所占的字节数为 4 的倍数,则正常存储;否则,需要在末尾补 若干个零字节,以凑足 4 的倍数。因此,BMP 图像文件中的图像数据部分的每一行占用的 字节数都是 4 的倍数,读取时每一行的末端可能包含着一些额外添加的字节(零字节,非 像素字节) ,读取时应当滤去。对于单

8、色,对于单色,每像素用 1b 表示(调色板索引) ,所以计算一行占用字节数时要先看是否 是整字节数,如果有多余位数,则要在低位(数据位从最高位开始放)上补零凑足一 个字节;再看这时占用的字节数是否是 4 的倍数,不是时要用零字节补足。比如宽度 246,一行占用字节数246/8+1(高六位是图像数据,低两位是补零位)+x(补零字 节)=30+1+1(x=1)32B。 计算如下:设:宽度(以像素为单位)为 Width,3if (width % 8 !=0 ) Bytes=Width/8+1; else Bytes=Width/8; if (Bytes %4 !=0) FilledBytes4-By

9、tes %4 else FilledBytes=0; 一行占用字节数Bytes+FilledBytes 对于对于 16 色,色,每像素占 4b,一行像素要么占用整字节数,要么会多出 4b 来。类似的, 计算如下:设:宽度(以像素为单位)为 Width, if (Width % 8 !=0 ) Bytes=Width/8+1; else Bytes=Width/8; if (Bytes %4 !=0) FilledBytes4-Bytes %4 else FilledBytes=0; 一行占用字节数Bytes+FilledBytes 对于对于 256 色,色,每像素占 8b。此时不需要计算是否整

10、字节数。计算如下:设:宽度(以 像素为单位)为 Width, if (Width %4 !=0) FilledBytes4-Width %4 else FilledBytes=0; 一行占用字节数Width+FilledBytes 对于对于 24 位彩色图像色,位彩色图像色,每像素占 24b3Byte,要将图像宽度(以像素为单位)先乘 以 3,再看是否是 4 的倍数。计算如下:设:宽度(以像素为单位)为 Width, if (Width*3 %4 !=0) FilledBytes4-Width3 %4 else FilledBytes=0; 一行占用字节数Width+FilledBytes对于

11、 BMP 文件格式,在处理单色图像和真彩色图像的时候,无论图像数据多么庞大,都 不对图像数据进行任何压缩处理。一般情况下,如果位图采用压缩格式,那么 16 色图像采 用 RLE4 压缩算法,256 色图像采用 RLE8 压缩算法。4部分名偏移量(16/10)域名大小(B)内容00h文件标识2BM ,表明图像格式02h文件大小4以字节为单位定义图像文件大小06h保留2保留字,无意义,置 008h保留2保留字,无意义,置 0图像文件头0Ah/10位图数据偏址4以字节为单位指明位图数据相对于图像文件头的偏移量0Eh/14位图信息头大小4位图信息头的长度,用来描述位图的颜色和压缩等信息。原为定值(40

12、,28H) ,现已改动。推荐使用具体的值,而不直接使用定值 28H。12h/18宽度4以像素为单位定义位图宽度16h/22高度4以像素为单位定义位图高度1Ah/26位面数2位图的位面数,总为 11Ch/28位/像素2每个像素所需的位数1:单色,缺省为黑(底)白(字),可自定义,如黑绿4:16 色位图8:256 色位图16:高彩色位图24:真彩色位图32:增强型真彩色位图1Eh/30压缩标志4表明位图数据是否经过压缩:0:代表不压缩(用 BI_RGB 表示)1:代表 RLE8_使用 8 位 RLE 压缩方式(用 BI_RLE8 表示)2:代表 RLE4_使用 4 位 RLE 压缩方式(用 BI_

13、RLE4 表示)3:代表 Bitfields_位域存放方式(用 BI_BITFIELDS 表示)22h/34位图数据大小4位图数据大小(以字节为单位) ,必须为 4 的倍数,未压缩则为0。26h/38水平分辨率4水平分辨率,单位:像素/米(英寸?)2Ah/42垂直分辨率4垂直分辨率,单位:像素/米(英寸?)2Eh/46颜色数4位图使用的颜色数,如:8b 表示为 100h 或 256。 (注:图像未必使用到全部颜色)图像信息头32h/50重要颜色数4指定重要的颜色数。当该域的值等于颜色数(或零)时,表示所有颜色都同等重要调色板数据需计算调色板不定调色板规范:对于调色板中的每一个表项里的 4 个字节用下述方法来描述 RGB 的值:1B 用于蓝色分量;1B 用于绿色分量;1B 用于红色分量;1B 用于填充(设置为 0) 。位图数据需计算位图数据不定该域的大小取决于颜色方法及图像尺寸的图像的颜色数,它包含了所有位图数据字节,这些数据可以是调色板的索引值(如 256色图像) ,也可以是实际的 RGB 值(如 24 位真彩) 。根据图像信息头中的“位/像素”域来决定。5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号