ОБНОВЛЕНИЕ: Я изменил код и удалил все, что могло быть записано одновременно с pictureBox1
, и я все еще получаю ту же ошибку, но в другом месте.Я приложу картинку с ошибкой.Я обновил код.
Хорошо, поэтому я пытался везде искать ответы на эту ошибку, но нигде не получил.Я нашел ответы, такие как g.Dispose();
и «получение блокировки изображения».Тем не менее, мой проект немного отличается, потому что это не неподвижное изображение.Вылетает примерно через 504 кадра.Я приложу изображение, где я получаю сообщение об ошибке, и я также свяжу код для отображения веб-камеры.Я понятия не имею, как pictureBox1
используется где-то еще, когда все, что я делаю в кнопке «Пуск» - это просто запускаю веб-камеру и сохраняю кадры в папке.Я использую библиотеку AForge для доступа к веб-камере.И когда я просто нажимаю кнопку «Запустить веб-камеру» и подожду пару минут, я получаю эту ошибку:
System.InvalidOperationException не обработан HResult = -2146233079
Сообщение = Объект в настоящее время используется в другом месте.Source = System.Drawing StackTrace: в System.Drawing.Graphics.CheckErrorStatus (статус Int32) в System.Drawing.Graphics.DrawImage (изображение изображения, Int32 x, Int32 y, ширина Int32, высота Int32) в System.Drawing.Graphics.DrawImage (изображение, прямоугольник) в System.Windows.Forms.PictureBox.OnPaint (PaintEventArgs pe) в System.Windows.Forms.Control.PaintWithErrorHandling (PaintEventArgs e, слой Int16) в System.Windows.Forms.Control.WmPaint (Сообщение & m) в System.Windows.Forms.Control.WndProc (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc (Сообщение & m) вSystem.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) InnerException:
Изображение сообщения об ошибке: https://imgur.com/a/bBFARy8
Код:
//Initializing Webcam
private FilterInfoCollection webcam;
private VideoCaptureDevice cam;
//Start Webcam
private void button1_Click(object sender, EventArgs e)
{
cam = new VideoCaptureDevice(webcam[comboBox1.SelectedIndex].MonikerString);
cam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);
cam.Start();
}
//Displaying Video from webcam in Picture box
void Cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap image = (Bitmap)eventArgs.Frame.Clone();
Bitmap image1 = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = image;
//Drawing lines across the pictureBox
g1 = Graphics.FromImage(image);
Pen gridPen = new Pen(Color.Black, 5);
g1.DrawLine(gridPen, 0, 5, 805, 5);
g1.DrawLine(gridPen, 0, 100, 805, 100);
g1.DrawLine(gridPen, 0, 195, 805, 195);
g1.DrawLine(gridPen, 0, 290, 805, 290);
g1.DrawLine(gridPen, 0, 385, 805, 385);
g1.DrawLine(gridPen, 0, 480, 805, 480);
}