BMP是一种与硬件设备无关的图像文件格式,采用位映射存储格式。BMP文件的图像深度可选1bit、4bit、8bit及24bit。位图数据记录了位图的每一个像素值或该对应像素的颜色表的索引值,BMP文件存储位图数据时,图像的扫描方式是在行内按从左到右扫描、在行间从下到上扫描的顺序。Windows规定图像文件中,一个图像的扫描行所占的字节数必须是4的倍数(即以字为单位),不足的以0填充!
biWidth:图象的宽度,单位是象素
biBitCount:每个像素所需的位数,常用的值为1(黑白二色图), 4(16色图), 8(256色), 24(真彩色图)
biBitCount = 1,8个像素占1个字节;
biBitCount = 4,2个像素占1个字节;
biBitCount = 8,1个像素占1个字节;
biBitCount = 24,1个像素占3个字节;
对于BMP等位图来说,要求是4字节对齐,即每行字节数必须为4的整数倍,因此满足以4字节为对齐单位向下对齐,所以每行字节数为:(8Bit = 1Byte)
PerLineBytes = (((biWidth * biBitCount) / 8 + 3) / 4) * 4
当BMP图位宽不足 8 时,多个像素才占用 1Byte,因此可以将除8外移,同时因为字节数必须为4的整数倍,3 * 8需变成31,则行字节数为:
PerLineBytes = (((biWidth * biBitCount) + 31) / 32) * 4
本文详细介绍了BMP图像格式的特点,包括其与硬件设备无关的特性、位映射存储方式及支持的不同图像深度。文中还解释了BMP文件中如何通过位图数据记录像素值,并阐述了为了满足4字节对齐的要求,BMP文件如何处理每一行的字节数。
2万+

被折叠的 条评论
为什么被折叠?



