Пример #1
0
        // 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());
        }
Пример #2
0
        // 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());
        }
Пример #3
0
        // 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());
        }
Пример #4
0
        // 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());
            }
        }