欢迎来到天天文库
浏览记录
ID:59256755
大小:18.36 KB
页数:7页
时间:2020-09-08
《BMP格式图像说明及程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、BMP格式图像说明一、bmp文件总体结构位图文件可看成由4个部分组成:位图文件头(bitmap-fileheader)、位图信息头(bitmap-informationheader)、彩色表(colortable)和定义位图的字节阵列,它们的名称和符号如表6-01所示。表6-01BMP图像文件组成部分的名称和符号 位图文件的组成结构名称符号位图文件头(bitmap-fileheader)BITMAPFILEHEADERbmfh位图信息头(bitmap-informationheader)BITMAPINFOHEADERbmih彩色表(colort
2、able)RGBQUADaColors[]图像数据阵列字节BYTEaBitmapBits[]以下将分别说明:1、文件头:BITMAPFILEHEADER bmfh; //位图文件头typedef struct tagBITMAPFILEHEADER{UINT bfType; //文件标志DWORD bfSize; //文件大小UINT bfReserved1,bfReserved2;DWORD bfOffBits; //数据偏移}BITMAPFILEHEADER;具体说明: 偏移量域的名称大小内容 图像0000h标识符(bfType)2byt
3、es两字节的内容用来识别位图的类型:‘BM’ :Windows3.1x,95,NT, …‘BA’ :OS/2BitmapArray‘CI’ :OS/2ColorIcon‘CP’ :OS/2ColorPointer文件头‘IC’ :OS/2Icon‘PT’ :OS/2Pointer 0002hbfSize1dword用字节表示的整个文件的大小,等于位图文件头+信息头+颜色表+位数据。以字节为单位即:sizeof(bmfh)+sizeof(bmih)+sizeof(RGBQUAD)*256+bmih.biSizeImae 0006hbfReserve
4、d1,bfReserved21dword保留,设置为0 000AhbfOffBits1dword从文件开始到位图数据开始之间的数据(bitmapdata)之间的偏移量,(即位图文件头+信息头+颜色表的字节数)2、位图信息用BITMAPINFO结构来定义,它由位图信息头(bitmap-informationheader)和彩色表(colortable)组成,前者用BITMAPINFOHEADER结构定义,后者用RGBQUAD结构定义。BITMAPINFO结构具有如下形式:typedefstructtagBITMAPINFO{BITMAPINFOHE
5、ADERbmiHeader;RGBQUADbmiColors[256];//其中256表示8位灰度图像的颜色数}BITMAPINFO;信息头:BITMAPINFOHEADER bmih; //位图信息头typedef struct tagBITMAPINFOHEADER{DWORD biSize; //信息头大小。40字节LONG biWidth,biHeight; //位图实际宽、高度。WORD biPlanes; //WORD biBitCount; //位图每像素的位数。DWORD biCompression; //DWORD biSize
6、Image; //位数据的大小(字节)LONG biXPelsPerMeter,biYPelsPerMeter; //DWORD biClrUsed; //DWORD biClrImprotant; //}BITMAPINFOHEADER;颜色表:typedefstructtagRGBQUAD{BYTErgbBlue;BYTErgbGreen;BYTErgbRed;BYTErgbReserved;}RGBQUAD;对于8位的灰度图,颜色表的值为:RGBQUADbmiColors[256]; for(i=0;i<256;i++) { bmi
7、Colors[i].rgbBlue=(BYTE)i; bmiColors[i].rgbGreen=(BYTE)i; bmiColors[i].rgbRed=(BYTE)i; bmiColors[i].rgbReserved=(BYTE)0; }具体含义如下: 000Eh biSize1dword位图信息头(BitmapInfoHeader)的长度,用来描述位图的颜色、压缩方法等。下面的长度表示:28h(40字节)-Windows3.1x,95,NT,0Ch-OS/21.xF0h-OS/22.x… 0012hbiWidth1dword
8、位图的宽度,以像素为单位,对于64*64的图像,则biWidth为64,具体视情况而定,其值为500字节的数据的前64个字节中的“有效列
此文档下载收益归作者所有