【发布时间】:2015-04-28 06:53:43
【问题描述】:
我想使用CreateBitmapFromMemory 方法,它需要步幅作为输入。而这一步让我很困惑。
cbStride [in]
类型:UINT
pbBuffer 中连续扫描线之间的字节数。
和here 它说:步幅 = 图像宽度 + 填充
- 为什么我们需要这些额外的空间(填充)。为什么不只是图像宽度。
这是如何计算步幅的吧?
lWidthByte = (lWidth * bits + 7) / 8;
lWidth→像素数
位→每像素位数
我认为除以 8 是为了转换为字节。但是,
- (+7) 在这里做什么?
最后
cbStride =((lWidthByte + 3) / 4) * 4;
- 这是怎么回事? (为什么不 cbStride = lWidthByte)
请帮我清除这些。
【问题讨论】: