如何在PictureBox上绘制/保持一条线?

时间:2014-04-11 22:25:38

标签: c# line picturebox

我有一条与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的任何其他方法吗?

由于

0 个答案:

没有答案