Линия# рисовать на веб-камеры потоковой передачи с использованием библиотеки aforge
Я начинающий программист на c#. мне нужно разработать программное обеспечение для рисования зеленых и красных линий с помощью 2 разных кнопок на потоковой передаче видео с веб-камеры.
public f21() { InitializeComponent(); blobCounter.MinWidth = 2; blobCounter.MinHeight = 2; blobCounter.FilterBlobs = true; blobCounter.ObjectsOrder = ObjectsOrder.Size; try { // enumerate video devices videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count == 0) throw new ApplicationException(); // add all devices to combo foreach (FilterInfo device in videoDevices) { camerasCombo.Items.Add(device.Name); } camerasCombo.SelectedIndex = 0; } catch (ApplicationException) { camerasCombo.Items.Add("No local capture devices"); videoDevices = null; } } private void f21_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { videoSourcePlayer2.SignalToStop(); videoSourcePlayer2.WaitForStop(); // videoDevices = null; VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[camerasCombo.SelectedIndex].MonikerString); videoSource.DesiredFrameSize = new Size(640, 480); videoSource.DesiredFrameRate = 12; videoSourcePlayer2.VideoSource = videoSource; videoSourcePlayer2.Start(); //groupBox1.Enabled = false; } private void button3_Click_1(object sender, EventArgs e) { x = 1; Y = 0; } private void button4_Click(object sender, EventArgs e) { x = 0; Y = 1; } private void videoSourcePlayer2_MouseDown(object sender, MouseEventArgs e) { if ((e.Button & MouseButtons.Left) == MouseButtons.Left) { // Remember the location where the button was pressed pt1 = e.Location; pt2 = new Point(e.X, 0); } } private void videoSourcePlayer2_Click(object sender, EventArgs e) { if (x == 1) { click = 1; } if (Y == 1) { click = 2; } } private void videoSourcePlayer2_NewFrame(object sender, ref Bitmap image) { Pen Green = new Pen(Color.Green, 3); Pen Greenb = new Pen(Color.ForestGreen, 6); Pen Red = new Pen(Color.Red, 3); Pen Redb = new Pen(Color.DarkRed, 6); Graphics g1 = Graphics.FromImage(image); if (click == 1) { g1.DrawLine(Green, pt1, pt2); } if (click == 2) { g1.DrawLine(Red, pt1, pt2); } g1.Dispose(); } }
Что я уже пробовал:
Мне удалось транслировать видео и нарисовать линию с помощью Aforge.net библиотека.
Но после завершения одной строки и на следующей кнопке нажмите время, когда первая строка исчезает.
Может ли какой-нибудь гуру просветить меня на этот счет?