开始研究专门针对Windows的屏幕捕获软件.在MSDN上查看捕获图像的示例时,我发现自己有点困惑.
当我提到不包含与实际文件相关联的标题等的位图的大小时,请记住.我在谈论原始像素数据.我本以为应该是公式(width*height)*bits-per-pixel.但是,根据示例,这是计算大小的正确方法:
DWORD dwBmpSize = ((bmpScreen.bmWidth * bi.biBitCount + 31) / 32) * 4 * bmpScreen.bmHeight;
Run Code Online (Sandbox Code Playgroud)
和或: ((width*bits-per-pixel + 31) / 32) * 4 * height
我不明白为什么有额外的计算涉及31,32和4.也许填充?我不确定,但任何解释都会非常感激.我已经尝试过谷歌搜索,但没有找到任何特别有用的结果.