图像处理常识:内存中的图像宽度的计算

先说公式,sz对齐的到n位的计算方法是

(sz + n-1) & -n;

或者

(sz + n-1) & ~n;

 

取决于系统要求,图像在内存中的存储,往往和原来的图片尺寸不一样,在windows图像宽度必须是bytes (32 bits) aligned,

这里要注意的是sz和n的数据类型,因为他们决定了位数,比如int是32位的,最大只能32位长的数据。

如果已知图像宽度的字节数imgWidth,那么在内存中的真实宽度是,

Width = ((imgWidth * 8 + 31) & ~31) / 8;

 

另外一种算法,假设你知道原始图像的像素宽度bmpWidth和每个像素所占的bit位数wBitCount,计算内存中宽度(字节数)时就应该这样计算

Width = ((bmpWidth * wBitCount + 31) / 32) * 4;    

 

posted @ 2018-08-08 09:15  SpaceVision  阅读(49)  评论(0编辑  收藏  举报