请教为何采集的图像会闪烁 ( 积分: 50 )

  • 主题发起人 主题发起人 forfor
  • 开始时间 开始时间
F

forfor

Unregistered / Unconfirmed
GUEST, unregistred user!
用的大恒CG300图像卡。
Bmp=TBitmap.Create;
VideoDc := GetDc(VideoPanel.Handle);
CGDataTransform(pBuffer , LineAddr ,OUTPUT_WINDOW_WIDTH, OUTPUT_WINDOW_HEIGHT,
16, True);
SetStretchBltMode(Bmp.Canvas.Handle, COLORONCOLOR);
SetDIBitsToDevice(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height,
0, 0, 0, pBMIInfo^.bmiHeader.biHeight,
pBuffer, pBMIInfo^, DIB_RGB_COLORS);
接下来的程序如果我用以下,则可正常显示:
StretchDIBits(VideoDC, 0, 0, VideoPanel.Width, VideoPanel.Height,
0, 0, pBMIInfo^.bmiHeader.biWidth, pBMIInfo^.bmiHeader.biHeight,
pBuffer, pBMIInfo^, DIB_RGB_COLORS, SRCCOPY);
而如果我用以下,则画面不断闪烁:
Image1.Picture.Bitmap.Assign(Bmp);

请教大侠这是什么原因呢?另外请教的是
SetStretchBltMode(Bmp.Canvas.Handle, COLORONCOLOR);这句语句的含义是什么,其中的COLORONCOLOR是什么意思?
多谢了!!
 
用的大恒CG300图像卡。
Bmp=TBitmap.Create;
VideoDc := GetDc(VideoPanel.Handle);
CGDataTransform(pBuffer , LineAddr ,OUTPUT_WINDOW_WIDTH, OUTPUT_WINDOW_HEIGHT,
16, True);
SetStretchBltMode(Bmp.Canvas.Handle, COLORONCOLOR);
SetDIBitsToDevice(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height,
0, 0, 0, pBMIInfo^.bmiHeader.biHeight,
pBuffer, pBMIInfo^, DIB_RGB_COLORS);
接下来的程序如果我用以下,则可正常显示:
StretchDIBits(VideoDC, 0, 0, VideoPanel.Width, VideoPanel.Height,
0, 0, pBMIInfo^.bmiHeader.biWidth, pBMIInfo^.bmiHeader.biHeight,
pBuffer, pBMIInfo^, DIB_RGB_COLORS, SRCCOPY);
而如果我用以下,则画面不断闪烁:
Image1.Picture.Bitmap.Assign(Bmp);

请教大侠这是什么原因呢?另外请教的是
SetStretchBltMode(Bmp.Canvas.Handle, COLORONCOLOR);这句语句的含义是什么,其中的COLORONCOLOR是什么意思?
多谢了!!
 
Image就有这样的问题
试一下:
Image1.Canvas.Draw(0,0,Bmp);
 
To tswhq:
我用Image1.Canvas.Draw(0,0,Bmp);后画面显示2秒钟后就不显示了:(
 
self.DoubleBuffered:=true;
 
多人接受答案了。
 
后退
顶部