我想使用CreateBitmapFromMemory方法,它需要输入stride。而这个stride让我感到困惑。
cbStride [in] 类型:UINT 在pbBuffer中,相邻扫描线之间的字节数。 这里说:stride = 图像宽度 + 填充
为什么我们需要这些额外的空间(填充)?为什么不只是图像宽度?
这是如何正确计算步幅的吗?
cbStride [in] 类型:UINT 在pbBuffer中,相邻扫描线之间的字节数。 这里说:stride = 图像宽度 + 填充
为什么我们需要这些额外的空间(填充)?为什么不只是图像宽度?
这是如何正确计算步幅的吗?
lWidthByte = (lWidth * bits + 7) / 8;
lWidth→像素数
bits→每像素比特数
我认为除以8是为了转换成字节,但是,
- (+7)在这里是做什么的?
最后
cbStride =((lWidthByte + 3) / 4) * 4;
- 这里发生了什么?(为什么不是cbStride = lWidthByte)
请帮我澄清这些问题。