private void tbCaptureDesktop_Click(object sender, RoutedEventArgs e) { this.Hide(); ExternalWindow?.Hide(); WindowUtilities.DoEvents(); var screen = Screen.FromHandle(WindowHandle); var img = ScreenCapture.CaptureWindow(screen.Bounds); ImageCaptured.Source = ScreenCapture.ImageToBitmapSource(img); CapturedBitmap?.Dispose(); CapturedBitmap = new Bitmap(img); StatusText.Text = $"Desktop captured Image: {CapturedBitmap.Width}x{CapturedBitmap.Height}"; ExternalWindow?.Show(); this.Topmost = true; this.Show(); WindowUtilities.DoEvents(); ScreenCaptureForm_SizeChanged(this, null); }
/// <summary> /// Release all allocated/locked resources /// </summary> public void Dispose() { if (MasterBitmap != null) { MasterBitmap.Dispose(); MasterBitmap = null; } if (CapturedBitmapBeforeFilters != null) { CapturedBitmapBeforeFilters.Dispose(); CapturedBitmapBeforeFilters = null; } if (CapturedBitmap != null) { CapturedBitmap.Dispose(); CapturedBitmap = null; } if (MasterModel != null) { MasterModel.Close(); MasterModel = null; } if (CapturedModelBeforeFilters != null) { CapturedModelBeforeFilters.Close(); CapturedModelBeforeFilters = null; } if (CapturedModel != null) { CapturedModel.Close(); CapturedModel = null; } }
private void tbSave_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(SaveFolder)) { SaveFolder = Path.GetTempPath(); } SaveFileDialog sd = new SaveFileDialog { Filter = "png files (*.png)|*.png|jpg files (*.jpg)|*.jpg", FilterIndex = 1, FileName = "", CheckFileExists = false, OverwritePrompt = false, AutoUpgradeEnabled = true, CheckPathExists = true, InitialDirectory = SaveFolder, RestoreDirectory = true }; var result = sd.ShowDialog(); if (result != System.Windows.Forms.DialogResult.OK) { return; } SavedImageFile = sd.FileName; try { CapturedBitmap?.Save(SavedImageFile); } catch (Exception ex) { Cancelled = true; StatusText.Text = "Error saving image: " + ex.Message; return; } if (!string.IsNullOrEmpty(ResultFilePath)) { File.WriteAllText(ResultFilePath, SavedImageFile); } Cancelled = false; if (AutoClose) { Close(); } ExternalWindow?.Show(); ExternalWindow?.Activate(); if (WindowState != WindowState.Maximized && WindowState != WindowState.Minimized) { ScreenCaptureConfiguration.Current.WindowWidth = this.Width; ScreenCaptureConfiguration.Current.WindowHeight = this.Width; } }
private void tbPasteImage_Click(object sender, RoutedEventArgs e) { if (System.Windows.Clipboard.ContainsImage()) { CapturedBitmap?.Dispose(); CapturedBitmap = new Bitmap(System.Windows.Forms.Clipboard.GetImage()); ImageCaptured.Source = ScreenCapture.BitmapToBitmapSource(CapturedBitmap); StatusText.Text = $"Pasted Image from Clipboard: {CapturedBitmap.Width}x{CapturedBitmap.Height}"; ScreenCaptureForm_SizeChanged(this, null); } }
private void ScreenCaptureForm_Unloaded(object sender, RoutedEventArgs e) { Overlay?.Close(); CapturedBitmap?.Dispose(); CaptureTimer?.Dispose(); try { UserActivityHook.KeyDown -= UserActivityHook_KeyDown; UserActivityHook.OnMouseActivity -= UserActivityHook_OnMouseActivity; UserActivityHook.Stop(); } catch { } if (WindowState == WindowState.Normal) { ScreenCaptureConfiguration.Current.WindowHeight = Height; ScreenCaptureConfiguration.Current.WindowWidth = Width; ScreenCaptureConfiguration.Current.Write(); } }
private void tbPasteImage_Click(object sender, RoutedEventArgs e) { if (ClipboardHelper.ContainsImage()) { CapturedBitmap?.Dispose(); var image = ClipboardHelper.GetImage(); if (image == null) { StatusBar.ShowStatusError("Couldn't retrieve image from clipboard."); return; } CapturedBitmap = new Bitmap(image); ImageCaptured.Source = ScreenCapture.BitmapToBitmapSource(CapturedBitmap); StatusText.Text = $"Pasted Image from Clipboard: {CapturedBitmap.Width}x{CapturedBitmap.Height}"; ScreenCaptureForm_SizeChanged(this, null); } }
tbClearImage_Click(object sender, RoutedEventArgs e) { CapturedBitmap?.Dispose(); CapturedBitmap = null; ImageCaptured.Source = null; }