我曾经很擅长这些事情,但那是很久以前的事了!
我有一个帧抓取器工作正常的示例程序,它使用这一行(在其他一些东西之后)在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)。
但我没有图像,有时只是白色,有时看起来像未初始化的记忆。
我犯了一个简单的错误,还是需要做更多的事?
由于
答案 0 :(得分:1)
尝试在StretchDIBits之前调用SetStretchBltMode。如果没有SetStretchBltMode,有时调整大小会错误地工作。参数:COLORONCOLOR(快速调整大小),HALFTONE(高质量调整大小)。
http://msdn.microsoft.com/en-us/library/dd145089(v=vs.85).aspx