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)); }
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)); } }
/// <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(); } }
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(); //} }
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)); }
public void RaiseFrameCapturedEvent(CameraEventArgs args) { FrameCaptured?.Invoke(args); }
void FrameCapturedHandler(CVPixelBuffer buffer) { FrameCaptured?.Invoke(this, new CVPixelBufferCapturedEvent(buffer)); }
private void OnImageGrabbed(object sender, EventArgs e) { _capture.Retrieve(_currentFrame); FrameCaptured?.Invoke(this, new FrameCapturedEventArgs(_currentFrame.Bitmap)); }