BMP文件格式要求,每一行的数据要在4字节处对齐,也就是说,如果每行数据长度
不是4字节的整数倍,就需要在后面补0,以使其成为4字节的整数倍。
公式RowBytes = 4 * ( ( biHeader.biWidth * biHeader.biBitCount + 31 ) / 32 )中
biWidth是每行像素数目;
biBitCount是每像素占用的二进制位数;
二者相乘是实际占用的二进制位数;
32是4个字节的位数(4×8=32);
加31的作用是:如果原长度是4字节的整数倍,增加的31就会被后续的整数除法舍去,不会改变长度值;如果不是4字节的整数倍,后续的整数除法中,增加的31就会保证把长度增加到4字节的整数倍;
除以32是为了求得补足4字节整数倍后,数据中有多少组4字节;
最后乘以4,就得出每行占用的字节数目了。