我正在使用函数SetDIBitsToDevice显示位图。此函数通过具有宽度和高度字段的LPBITMAPINFO结构了解总图像大小。它还知道通过参数XDest,YDest,Width,Height绘制的感兴趣区域。所有这些都指定以像素为单位。
当图像存储为规范图像时,到目前为止一直很好,即行间距(像素与下面一个像素之间的字节数)与图像宽度以字节匹配,填充(如果需要)以达到下一个四个字节的倍数。
由于技术原因,我的图像间距较大(但仍然是四的倍数)。例如,width = 1000但pitch = 1024。对于灰度图像(每像素1个字节),我可以通过在LPBITMAPINFO中声明1024的宽度并在传递给SetDIBitsToDevice时宽度为1000来欺骗该函数。
但是对于每像素3个字节的图像(RGB),我被卡住了,因为1024个字节不对应于整数个像素,我认为无法指定该间距。
您是否看到了文档中遗漏的变通方法或其他内容? (我不认为SizeImage字段可以用于任何用途。)