我有一条与PictureBox交叉的线,当我刷新pictureBox时,穿过的线会向后移动。为了将线重新放在前面,我在刷新图像后将pictureBox设置为背景。但是我使用网络摄像头并抓取帧并显示到pictureBoX,这导致停留在pictureBox前面的行在pictureBox的区域中闪烁。
任何建议解决这个问题而不制作缓冲线并添加到图像中?
我使用的代码是:
System.Drawing.Pen myPen;
myPen = new System.Drawing.Pen(System.Drawing.Color.Red);
System.Drawing.Graphics formGraphics = this.CreateGraphics();
formGraphics.DrawLine(myPen, 0, 0, 200, 200);
myPen.Dispose();
formGraphics.Dispose();
在一个按以下方式安排的方法中:
Application.Idle += ProcessFrame():
processFrame是:
private void ProcessFrame()
{
Image<Bgr, Byte> ImageFrame = capture.QueryFrame();
//after some image processing
pictureBox.Image = ImageFrame;
// after this the line goes to the background and I need to send the picturebox
//Background to show the line in front of poctureBox
pictureBox.SendToBack();
}
这会导致线条在放置pictureBox的位置闪烁,因为在图像更新后调用方法pictureBox.SendToBack()。
我可以做一个后备缓冲区,并生成与图像框一起显示的图像框,但该图像框的行长。
没有backbuffer的任何其他方法吗?
由于