该算法为:LineBytes = (width * bitCount + 31) / 32 * 4
bitCount为位图位宽,32位BMP,位宽为32、24位BMP位宽为23、256色位图位宽为8、等等。
这是一种对齐算法,对于BMP等位图来说,要求是4字节对齐,即每行字节数必须为4的整数倍。
因为8bit等于1Byte,同时满足以4字节为对齐单位向下对齐,所以可以得:
LineBytes = (width * bitCount / 8 + 3) / 4 * 4
对于位宽不足8的位图,有可能是多个像素才占用1Byte,所以应该将“/ 8”移出括号,进一步得:
LineBytes = (width * bitCount + 31) / 32 * 4
关于读取图片时候行字节数的算法LineBytes=(width*8+31)/32*4
最新推荐文章于 2025-05-04 20:55:54 发布