SetDIBitsToDevice,StretchDIBits,VB6

时间:2011-10-13 10:46:02

标签: gdi

我曾经很擅长这些事情,但那是很久以前的事了!

我有一个帧抓取器工作正常的示例程序,它使用这一行(在其他一些东西之后)在PictureBox中显示图像:

SetDIBitsToDevice(Picture1.hdc,0,0,gSizeX,gSizeY,0,0,0,gSizeY,gSurfAddr,bmpInfo,DIB_RGB_COLORS)

我想要做的就是改变它,这样我就可以创建一个缩放的图像。所以我将这一行改为:

StretchDIBits(Picture1.hdc,0,0,w,h,0,0,gSizeX,gSizeY,gSurfAddr,bmpInfo,DIB_RGB_COLORS,vbSrcCopy) ..其中w和h是我想要的图像的尺寸(我最初尝试与gSizeX / y相同,大约700 * 500)。

但我没有图像,有时只是白色,有时看起来像未初始化的记忆。

我犯了一个简单的错误,还是需要做更多的事?

由于

1 个答案:

答案 0 :(得分:1)

尝试在StretchDIBits之前调用SetStretchBltMode。如果没有SetStretchBltMode,有时调整大小会错误地工作。参数:COLORONCOLOR(快速调整大小),HALFTONE(高质量调整大小)。

http://msdn.microsoft.com/en-us/library/dd145089(v=vs.85).aspx