自学图形图像设计,遇到的问题是看不懂求图像每行的字节数,请指教~

aicro aicro 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我看得书上有如下代码
DWORD CDib::GetDibWidthBytes()
{
byBitCount=m_pBitmapInfoHeader->biBitCount;
LONG nWidth=m_pBitmapInfoHeader->biWidth;
dwWidthBytes = (DWORD)m_pBitmapInfoHeader->biWidth; //8-bits
if(byBitCount == 1) dwWidthBytes = (nWidth + 7) / 8;
else if(byBitCount == 4) dwWidthBytes = (nWidth + 1) / 2;
else if(byBitCount == 24) dwWidthBytes = 3 * nWidth ;
while((dwWidthBytes & 3) != 0)dwWidthBytes++;
return dwWidthBytes;
}

1。为什么不把 if(byBitCount == 8) dwWidthBytes = (((wide * 8)+31)/32*4); 写进去,是一定要分类讨论,还是书上的失误?
2。为什么这些计算都那么复杂,有什么依据或者潜在的规则吗?而且我觉得当byBitCount == 8,横向的像素点的个数不就是横向的byte数吗?

先谢过!
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
aicro
图形处理/算法 19,463 成员 50,678 内容