BMP是windows的一种图片格式,其组织方式其实相对简单喽,一个简单表示bmp文件的头结构 (BITMAPFILEHEAER)+ 一个表示图片信息的结构(BITMAPINFOHEADER)+ 一个表示调色板的结构(可选)。剩下的便是存储的每一个像素点对应的R,G,B值。
BITMAPFILEHEADER
WORD bfType:表示文件类型,该值必须是0x424D,即字符‘BM’,否则便不是BMP图片。
DWORD bfSize:以字节为单位,表示整个图像文件的大小。
如需要添加列表可继续从左边点击添加
WORD bfReserved1:保留,必须设为0
WORD bfReserved2:保留,必须设为0
DWORD bfOffbits:表示从文件头开始到实际的像素之间的偏移,由于调色板的不固定性,实际像素开始的位置可能发生变化,通过此值便可以确定。
BITMAPINFOHEADER
DWORD biSize:说明本结构所占用的字节数,一般为0x28,即40个字节。
DWORD biWidth:很明显喽,表示图片的宽度。
DWORD biHeight:同上,表示图片的高度。
WORD biPlanes:表示目标设备平面数,为1。
WORD biBitCount:表示比特/像素,即每个像素占用多少比特值表示,一般值为1,4,8,16,24,32。
DWORD biCompression:表示像素的压缩类型,一般情况下都为不压缩类型,即BI_RGB,还有可选项为BI_RLE4,BI_RLE8,BI_JPEG,BI_BITFIELDS,再此就不赘述喽。
DWORD biSizeImage:说明图像的大小,以字节为单位,如果是BI_RGB类型,可设为0。
LONG biXPelsPerMeter:水平分辨率,单位像素/米。
LONG biYPelsPerMeter:垂直分辨率,单位像素/米。
DWORD biClrUsed:说明位图实际使用的彩色表中的索引颜色数(设为0的话,则说民使用所有调色板项)。
DWORD biClrImportant: 表示对图像显示有重要影响的颜色索引的数目,0表示都重要。
还是举个栗子吧,请看图: