位图行四字节对齐算法

xiaoxiao2021-02-28  74

在介绍这个算法之前先了解一下取整运算. 两个整型变量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,开头我已经讲的很清楚了.

转载请注明原文地址: https://www.6miu.com/read-57728.html

最新回复(0)