位图行四字节对齐算法

(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)    收藏  举报

导航