每行像素字节数计算方法
该算法为:biWidthBytes = (biWidth * biBitCount + 31) / 32 * 4
biBitCount 为位图位宽,32位BMP,位宽为32、24位BMP位宽为23、256色位图位宽为8、纯黑白位图位宽为1、等等。
这是一种对齐算法,对于BMP等位图来说,要求是4字节对齐,即每行字节数必须为4的整数倍。
因为8bit等于1Byte,同时满足以4字节为对齐单位向下对齐,所以可以得:
biWidthBytes = (biWidth * biBitCount / 8 + 3) / 4 * 4
对于位宽不足8的位图,有可能是多个像素才占用1Byte,所以应该将“/ 8”移出括号,进一步得:
biWidthBytes = (biWidth * biBitCount + 31) / 32 * 4