位图存储图像数据每行字节数为4的倍数

我的未来我决定 提交于 2020-03-17 02:32:47

int lineByte=(bmpWidth*biBitCount/8+3)/4*4

理解:这是计算位图每行占多少个字节;
灰度图像(biBitCount=8)彩色图像(biBitCount=24)
bmpWidth是位图的宽度,也就是每行有多少个像素块
在计算机中如果你是整形 (n)除以(n+i)都是等于0的,(n和i都是自然数)
存储图像数据每行字节数为4的倍数
所以+3是怕出现不满足4的倍数这种情况
如果是4的倍数则结果和不+3的结果是一样的
如果不是4的倍数则结果进1位

/4*4除以四在乘以四是把数据归为4的倍数。
不够4的倍数就把余数约掉。只留商。
举个例子整形的话17/4=4(正常是4又1/4)而计算机直接算出来等于4
再乘以四就等于16
也就是说把17归为4的倍数=16;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!