// On new frame private void video_NewFrame(object sender, CameraEventArgs e) { try { // lock Monitor.Enter(this); // dispose old frame if (lastFrame != null) { lastFrame.Dispose(); } lastFrame = (Bitmap) e.Bitmap.Clone(); // apply motion detector if (motionDetecotor != null) { motionDetecotor.ProcessFrame(ref lastFrame); } // image dimension width = lastFrame.Width; height = lastFrame.Height; } catch (Exception) { } finally { // unlock Monitor.Exit(this); } // notify client if (NewFrame != null) NewFrame(this, new EventArgs()); }
// On new frame private void video_NewFrame(object sender, CameraEventArgs e) { // lock Monitor.Enter(this); // dispose old frame if (lastFrame != null) { lastFrame.Dispose(); } lastFrame = (Bitmap)e.Bitmap.Clone(); // image dimension _cameraInfo.Width = lastFrame.Width; _cameraInfo.Height = lastFrame.Height; // unlock Monitor.Exit(this); // notify client if (NewFrame != null) NewFrame(this, new EventArgs()); }
// On new frame private void video_NewFrame(object sender, CameraEventArgs e) { // lock Monitor.Enter(this); // dispose old frame if (lastFrame != null) { lastFrame.Dispose(); } lastFrame = (Bitmap) e.Bitmap.Clone(); ////Fernando: DateTime now = DateTime.Now; string timeStamp = now.ToString("yyyyMMddHHmmssfff"); string fileName = "image_" + timeStamp + ".jpg"; lastFrame.Save(@"F:\Development\CPP\RTMP\projects\ffmpeg\bin\img\" + fileName); string filePath = @"F:\Development\CPP\RTMP\projects\ffmpeg\bin\img\images.txt"; //TextWriter tw = new StreamWriter(@"F:\Development\CPP\RTMP\projects\ffmpeg\bin\img\images.txt", true, ); FileStream fileStream = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); TextWriter textWriter = new StreamWriter(fileStream); textWriter.WriteLine("0|" + timeStamp + "|" + fileName); textWriter.Flush(); textWriter.Close(); fileStream.Close(); //Fernando: FIN // image dimension width = lastFrame.Width; height = lastFrame.Height; // unlock Monitor.Exit(this); // notify client if (NewFrame != null) NewFrame(this, new EventArgs()); }
// NewFrame事件激发此函数 private void video_NewFrame(object sender, CameraEventArgs e) { // 线程加锁 Monitor.Enter(this); // 清理旧帧 if (lastFrame != null) { lastFrame.Dispose(); } // 复制图片 lastFrame = (Bitmap)e.Bitmap.Clone(); recordFrame = lastFrame; width = lastFrame.Width; height = lastFrame.Height; if (智慧监控.detector != null && 智慧监控.luzhi1 == false) { 智慧监控.motionLevel = 智慧监控.detector.ProcessFrame(lastFrame); } if (photoing == true) { photoing = false; DateTime date = DateTime.Now; String fileName = String.Format("{0}-{1}-{2} {3}-{4}-{5}", date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second); recordFrame.Save(String.Format(".\\SmartVision\\图片\\Camera_Vision_{0}_{1}.jpg", name, fileName), ImageFormat.Jpeg); } // 解锁 Monitor.Exit(this); // 通知客户端 camera自己的新帧事件 if (NewFrame != null) { NewFrame(this, new EventArgs()); } }