图像处理常识:内存中的图像宽度的计算
先说公式,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;