位图行四字节对齐算法
(9条消息) 位图行四字节对齐算法_noenroll的博客-CSDN博客
(9条消息) bmp图片:(需要)每行对齐到4字节的原因_剑客白丁-CSDN博客
(9条消息) BMP字节对齐_xiuxiaoman的专栏-CSDN博客
(9条消息) 图像数据每行对齐到4字节_yasi_xi的专栏-CSDN博客
bitmap格式分析 - CAM& - 博客园 (cnblogs.com)
在介绍这个算法之前先了解一下取整运算.
两个整型变量a=14,b=5;
舍余取整: a/b=2
进一取整:(a+b-1)/b=3
Windows规定四个字节为一个字节单元,位图的相邻两行数据不能共用一个字节单元,在构造位图时,若每行的字节单元没有使用完,要以0填充.
所以,在知道位图的像素宽度情况下,读取位图色彩数据也要满足每行读取的数据是四字节的整数倍.
位图行四字节对齐算法:
第一种表示方法:
LineByte = [(biWidth * biBitCount + 7) / 8 +3 ])/ 4 * 4
第二种表示方法:
LineByte = (biWidth * biBitCount + 31) /32 *4
LineByte :每行所占的字节
biWidth : 图片像素宽度
biBitCount :像素深度,1bit,4bit,8bit…
biWidth * biBitCount :未填充时一行数据所占的位数
(biWidth * biBitCount+7) / 8 :未对齐时一行数据所占的字节数
[(biWidth * biBitCount + 7) / 8 +3 ])/ 4 :对齐时一行数据所占的字节单元(4Byte)数
(biWidth * biBitCount + 31) /32 :对齐时一行数据所占的字节单元(4Byte)数
为什么会有+7,+3,+31,开头我已经讲的很清楚了.
————————————————
版权声明:本文为CSDN博主「noenroll」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/noenroll/article/details/72902841
posted on 2021-06-28 13:51 OctoberKey 阅读(330) 评论(0) 收藏 举报
浙公网安备 33010602011771号