Esempio n. 1
0
        private void _updateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Bitmap screenshot = new Bitmap(Screen.Bounds.Width, Screen.Bounds.Height, PixelFormat.Format32bppArgb);

            using (Graphics graphics = Graphics.FromImage(screenshot))
                graphics.CopyFromScreen(Screen.Bounds.X, Screen.Bounds.Y, 0, 0, Screen.Bounds.Size, CopyPixelOperation.SourceCopy);

            if (_updatePreview)
            {
                if (_previewImage == null)
                {
                    _previewImage = new Bitmap(screenshot, new Size(160, 160));
                }
                else
                {
                    lock (_previewImage)
                    {
                        _previewImage?.Dispose();
                        _previewImage = new Bitmap(screenshot, new Size(160, 160));
                    }
                }

                _updatePreview = false;
            }

            FrameCaptured?.Invoke(this, new FrameCapturedEventArgs(screenshot));
        }
Esempio n. 2
0
        void Proc()
        {
            var viewport = Viewport;

            if (buffer == null || buffer.Width != viewport.Width || buffer.Height != viewport.Height)
            {
                graphic?.Dispose();
                buffer?.Dispose();

                buffer  = new Bitmap((int)viewport.Width, (int)viewport.Height, PixelFormat.Format32bppArgb);
                graphic = Graphics.FromImage(buffer);
            }

            graphic.CopyFromScreen((int)viewport.X, (int)viewport.Y, 0, 0, new System.Drawing.Size((int)viewport.Width, (int)viewport.Height), CopyPixelOperation.SourceCopy);

            var mat = OpenCvSharp.Extensions.BitmapConverter.ToMat(buffer);

            var arg = new FrameArgs()
            {
                Frame = mat
            };

            FrameCaptured?.Invoke(this, arg);
            if (arg.DisposeFrame)
            {
                mat.Dispose();
            }
            if (arg.Break)
            {
                Task.Factory.StartNew(() =>
                {
                    Stop();
                }).Wait();
            }
        }
 private void CaptureLoop()
 {
     while (!_taskStopToken)
     {
         _windowCapture.PerformCapture();
         Interlocked.Increment(ref _frameCounter);
         FrameCaptured?.Invoke(this, new DotaOcvWindowCaptureFrameCapturedEventArgs(_windowCapture));
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Constructor of LPREngine instance
        /// </summary>
        public VideoCapture(FrameCaptured frameCapturedCallback, CaptureError captureErrorCallback, object customObject)
        {
            this.frameCapturedCallback        = frameCapturedCallback;
            this.captureErrorCallback         = captureErrorCallback;
            this.navive_frameCapturedCallback = new DTKLPR4.FrameCapturedNative(OnFrameCapturedNative);
            this.navive_captureErrorCallback  = new DTKLPR4.CaptureErrorNative(OnCaptureErrorNative);
            this.customObject = customObject;

            this.hVideoCapture = DTKLPR4.VideoCapture_Create(
                Marshal.GetFunctionPointerForDelegate(navive_frameCapturedCallback),
                Marshal.GetFunctionPointerForDelegate(navive_captureErrorCallback),
                IntPtr.Zero);
        }
        private void OnFrameCaptured(IntPtr hWnd, IntPtr hRgb, BITMAPINFOHEADER bitmapInfo, IntPtr bitmapBits,
                                     IntPtr userData)
        {
            lock (_handlerLock)
            {
                var e = new RgbEasyFrameCapturedEventArgs(hWnd, this, bitmapInfo, bitmapBits, userData);
                FrameCaptured?.Invoke(this, e);

                if (e.PreventDefaultHandler)
                {
                    return;
                }

                DefaultFrameCapturedHandler();
            }
        }
Esempio n. 6
0
        void XferNotify(object sender, SapXferNotifyEventArgs argsNotify)
        {
            TransferNotifyEventArgs transferNotifyEventArgs = new TransferNotifyEventArgs(argsNotify);

            FrameCaptured?.Invoke(transferNotifyEventArgs);
            //  instance.FrameCaptured?.Invoke(new TransferNotifyEventArgs(argsNotify));

            //GrabDemoDlg GrabDlg = argsNotify.Context as GrabDemoDlg;
            //// If grabbing in trash buffer, do not display the image, update the
            //// appropriate number of frames on the status bar instead
            //if (argsNotify.Trash)
            //    GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, true);
            //// Refresh view
            //else
            //{
            //    GrabDlg.Invoke(new DisplayFrameAcquired(GrabDlg.ShowFrameNumber), argsNotify.EventCount, false);
            //    GrabDlg.m_View.Show();
            //}
        }
Esempio n. 7
0
 private void OnElapsed(object sender, ElapsedEventArgs e)
 {
     _graphics.FillRectangle(GetRandomBrush(), _random.Next(0, _testFrame.Width), _random.Next(0, _testFrame.Height), _random.Next(20, 70), _random.Next(20, 70));
     FrameCaptured?.Invoke(this, new FrameCapturedEventArgs((Image)_testFrame.Clone()));
 }
 public void OnImageGrabbed(Image image)
 {
     FrameCaptured?.Invoke(this, new FrameCapturedEventArgs(image));
 }
Esempio n. 9
0
 public void RaiseFrameCapturedEvent(CameraEventArgs args)
 {
     FrameCaptured?.Invoke(args);
 }
Esempio n. 10
0
 void FrameCapturedHandler(CVPixelBuffer buffer)
 {
     FrameCaptured?.Invoke(this, new CVPixelBufferCapturedEvent(buffer));
 }
Esempio n. 11
0
        private void OnImageGrabbed(object sender, EventArgs e)
        {
            _capture.Retrieve(_currentFrame);

            FrameCaptured?.Invoke(this, new FrameCapturedEventArgs(_currentFrame.Bitmap));
        }