public RegionCaptureForm(RegionCaptureMode mode) { Mode = mode; ScreenRectangle = CaptureHelpers.GetScreenBounds(); ScreenRectangle0Based = CaptureHelpers.ScreenToClient(ScreenRectangle); ImageRectangle = ScreenRectangle0Based; InitializeComponent(); Config = new RegionCaptureOptions(); DrawableObjects = new List <DrawableObject>(); timerStart = new Stopwatch(); timerFPS = new Stopwatch(); colorBlinkAnimation = new ColorBlinkAnimation(); borderPen = new Pen(Color.Black); borderDotPen = new Pen(Color.White) { DashPattern = new float[] { 5, 5 } }; nodeBackgroundBrush = new SolidBrush(Color.White); infoFont = new Font("Verdana", 9); infoFontMedium = new Font("Verdana", 12); infoFontBig = new Font("Verdana", 16, FontStyle.Bold); textBackgroundBrush = new SolidBrush(Color.FromArgb(150, Color.FromArgb(42, 131, 199))); textOuterBorderPen = new Pen(Color.FromArgb(150, Color.White)); textInnerBorderPen = new Pen(Color.FromArgb(150, Color.FromArgb(0, 81, 145))); markerPen = new Pen(Color.FromArgb(200, Color.Red)); }
public BaseRegionForm() { ScreenRectangle = CaptureHelpers.GetScreenBounds(); ScreenRectangle0Based = CaptureHelpers.ScreenToClient(ScreenRectangle); InitializeComponent(); Icon = ShareXResources.Icon; Cursor = Helpers.CreateCursor(Resources.Crosshair); DrawableObjects = new List <DrawableObject>(); Config = new RegionCaptureOptions(); timerStart = new Stopwatch(); timerFPS = new Stopwatch(); borderPen = new Pen(Color.Black); borderDotPen = new Pen(Color.White); borderDotPen.DashPattern = new float[] { 5, 5 }; nodeBackgroundBrush = new SolidBrush(Color.White); infoFont = new Font("Verdana", 9); infoFontMedium = new Font("Verdana", 12); infoFontBig = new Font("Verdana", 16, FontStyle.Bold); textBackgroundBrush = new SolidBrush(Color.FromArgb(75, Color.Black)); textBackgroundPenWhite = new Pen(Color.FromArgb(50, Color.White)); textBackgroundPenBlack = new Pen(Color.FromArgb(150, Color.Black)); markerPen = new Pen(Color.FromArgb(200, Color.Red)); }
public ScrollingCaptureForm(ScrollingCaptureOptions options, RegionCaptureOptions regionCaptureOptions, bool forceSelection = false) { Options = options; RegionCaptureOptions = regionCaptureOptions; InitializeComponent(); Icon = ShareXResources.Icon; cbScrollMethod.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<ScrollingCaptureScrollMethod>()); cbScrollMethod.SelectedIndex = (int)Options.ScrollMethod; cbScrollTopMethodBeforeCapture.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<ScrollingCaptureScrollTopMethod>()); cbScrollTopMethodBeforeCapture.SelectedIndex = (int)Options.ScrollTopMethodBeforeCapture; nudStartDelay.SetValue(Options.StartDelay); nudScrollDelay.SetValue(Options.ScrollDelay); nudMaximumScrollCount.SetValue(Options.MaximumScrollCount); cbStartSelectionAutomatically.Checked = Options.StartSelectionAutomatically; cbStartCaptureAutomatically.Checked = Options.StartCaptureAutomatically; cbAutoDetectScrollEnd.Checked = Options.AutoDetectScrollEnd; cbRemoveDuplicates.Checked = Options.RemoveDuplicates; cbAutoCombine.Checked = Options.AfterCaptureAutomaticallyCombine; chkAutoUpload.Checked = Options.AutoUpload; if (forceSelection || Options.StartSelectionAutomatically) { if (Options.StartCaptureAutomatically) { WindowState = FormWindowState.Minimized; } SelectHandle(); } }
public EditorStartupForm(RegionCaptureOptions options) { Options = options; InitializeComponent(); ShareXResources.ApplyTheme(this); }
public BaseRegionForm() { ScreenRectangle = CaptureHelpers.GetScreenBounds(); ScreenRectangle0Based = CaptureHelpers.ScreenToClient(ScreenRectangle); InitializeComponent(); Icon = ShareXResources.Icon; Cursor = Helpers.CreateCursor(Resources.Crosshair); drawableObjects = new List<DrawableObject>(); Config = new RegionCaptureOptions(); timerStart = new Stopwatch(); timerFPS = new Stopwatch(); borderPen = new Pen(Color.Black); borderDotPen = new Pen(Color.White); borderDotPen.DashPattern = new float[] { 5, 5 }; nodeBackgroundBrush = new SolidBrush(Color.White); infoFont = new Font("Verdana", 9); infoFontMedium = new Font("Verdana", 12); infoFontBig = new Font("Verdana", 16, FontStyle.Bold); textBackgroundBrush = new SolidBrush(Color.FromArgb(75, Color.Black)); textBackgroundPenWhite = new Pen(Color.FromArgb(50, Color.White)); textBackgroundPenBlack = new Pen(Color.FromArgb(150, Color.Black)); markerPen = new Pen(Color.FromArgb(200, Color.Red)); }
public ScrollingCaptureForm(ScrollingCaptureOptions options, RegionCaptureOptions regionCaptureOptions, bool forceSelection = false) { Options = options; RegionCaptureOptions = regionCaptureOptions; InitializeComponent(); ShareXResources.ApplyTheme(this); cbScrollMethod.Items.AddRange(Helpers.GetLocalizedEnumDescriptions <ScrollingCaptureScrollMethod>()); cbScrollMethod.SelectedIndex = (int)Options.ScrollMethod; cbScrollTopMethodBeforeCapture.Items.AddRange(Helpers.GetLocalizedEnumDescriptions <ScrollingCaptureScrollTopMethod>()); cbScrollTopMethodBeforeCapture.SelectedIndex = (int)Options.ScrollTopMethodBeforeCapture; nudStartDelay.SetValue(Options.StartDelay); nudScrollDelay.SetValue(Options.ScrollDelay); nudMaximumScrollCount.SetValue(Options.MaximumScrollCount); cbStartSelectionAutomatically.Checked = Options.StartSelectionAutomatically; cbStartCaptureAutomatically.Checked = Options.StartCaptureAutomatically; cbAutoDetectScrollEnd.Checked = Options.AutoDetectScrollEnd; cbRemoveDuplicates.Checked = Options.RemoveDuplicates; cbAutoCombine.Checked = Options.AfterCaptureAutomaticallyCombine; chkAutoUpload.Checked = Options.AutoUpload; if (forceSelection || Options.StartSelectionAutomatically) { if (Options.StartCaptureAutomatically) { WindowState = FormWindowState.Minimized; } SelectHandle(); } }
public static Image ApplyRegionPathToImage(Image backgroundImage, GraphicsPath regionFillPath, RegionCaptureOptions options) { if (backgroundImage != null && regionFillPath != null) { Image img; Rectangle regionArea = Rectangle.Round(regionFillPath.GetBounds()); Rectangle screenRectangle = CaptureHelpers.GetScreenBounds0Based(); Rectangle newRegionArea = Rectangle.Intersect(regionArea, screenRectangle); using (GraphicsPath gp = (GraphicsPath)regionFillPath.Clone()) { using (Matrix matrix = new Matrix()) { gp.CloseFigure(); matrix.Translate(-Math.Max(0, regionArea.X), -Math.Max(0, regionArea.Y)); gp.Transform(matrix); } img = ImageHelpers.CropImage(backgroundImage, newRegionArea, gp); } return img; } return null; }
public static void ShowScreenColorPickerDialog(RegionCaptureOptions options) { Color color = Color.Red; ColorPickerForm colorPickerForm = new ColorPickerForm(color, true); colorPickerForm.EnableScreenColorPickerButton(() => GetPointInfo(options)); colorPickerForm.Show(); }
public static void ShowScreenRuler(RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.QuickCrop = false; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Ruler, newOptions)) { form.ShowDialog(); } }
public static Bitmap GetRegionImage(RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions)) { form.ShowDialog(); return(form.GetResultImage()); } }
public static Image AnnotateImage(string filePath, RegionCaptureOptions options) { if (File.Exists(filePath)) { using (Image img = ImageHelpers.LoadImage(filePath)) { return(AnnotateImage(img, options)); } } return(null); }
public static void ShowScreenRuler(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Ruler)) { form.Config = GetRegionCaptureOptions(options); form.Config.QuickCrop = false; form.Config.ShowTips = false; form.Prepare(); form.ShowDialog(); } }
public static Image GetRegionImage(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default)) { form.Config = GetRegionCaptureOptions(options); form.Config.ShowTips = false; form.Prepare(); form.ShowDialog(); return(form.GetResultImage()); } }
public static Image GetRegionImage(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default)) { form.Config = GetRegionCaptureOptions(options); form.Config.ShowTips = false; form.Prepare(); form.ShowDialog(); return form.GetResultImage(); } }
public static void ShowScreenRuler(RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.QuickCrop = false; newOptions.MultipleRegions = false; newOptions.UseLightResizeNodes = true; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Ruler, newOptions)) { form.ShowDialog(); } }
public static Image GetRegionImage(RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.ShowHotkeys = false; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions)) { form.Prepare(); form.ShowDialog(); return(form.GetResultImage()); } }
public NewImageForm(RegionCaptureOptions options) { InitializeComponent(); ShareXResources.ApplyThemeToForm(this); Options = options; nudWidth.TextChanged += NudWidth_TextChanged; nudHeight.TextChanged += NudHeight_TextChanged; nudWidth.Value = Options.EditorNewImageSize.Width; nudHeight.Value = Options.EditorNewImageSize.Height; cbTransparent.Checked = Options.EditorNewImageTransparent; btnChangeColor.Color = options.EditorNewImageBackgroundColor; }
public static bool GetRectangleRegion(out Rectangle rect, RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.ShowHotkeys = false; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions)) { form.Prepare(); form.ShowDialog(); if (form.Result == RegionResult.Region) { if (form.ShapeManager.IsCurrentShapeValid) { rect = CaptureHelpers.ClientToScreen(form.ShapeManager.CurrentRectangle); return(true); } } else if (form.Result == RegionResult.Fullscreen) { rect = CaptureHelpers.GetScreenBounds(); return(true); } else if (form.Result == RegionResult.Monitor) { Screen[] screens = Screen.AllScreens; if (form.MonitorIndex < screens.Length) { Screen screen = screens[form.MonitorIndex]; rect = screen.Bounds; return(true); } } else if (form.Result == RegionResult.ActiveMonitor) { rect = CaptureHelpers.GetActiveScreenBounds(); return(true); } } rect = Rectangle.Empty; return(false); }
public static bool GetRectangleRegion(out Rectangle rect, RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default)) { form.Config = GetRegionCaptureOptions(options); form.Config.ShowTips = false; form.Prepare(); form.ShowDialog(); if (form.Result == RegionResult.Region) { if (form.ShapeManager.IsCurrentShapeValid) { rect = CaptureHelpers.ClientToScreen(form.ShapeManager.CurrentRectangle); return true; } } else if (form.Result == RegionResult.Fullscreen) { rect = CaptureHelpers.GetScreenBounds(); return true; } else if (form.Result == RegionResult.Monitor) { Screen[] screens = Screen.AllScreens; if (form.MonitorIndex < screens.Length) { Screen screen = screens[form.MonitorIndex]; rect = screen.Bounds; return true; } } else if (form.Result == RegionResult.ActiveMonitor) { rect = CaptureHelpers.GetActiveScreenBounds(); return true; } } rect = Rectangle.Empty; return false; }
public static SimpleWindowInfo GetWindowInfo(RegionCaptureOptions options) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.UseDimming = false; newOptions.ShowMagnifier = false; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.OneClick, newOptions)) { form.ShowDialog(); if (form.Result == RegionResult.Region) { return(form.SelectedWindow); } } return(null); }
public static void ShowScreenColorPickerDialog(RegionCaptureOptions options, bool checkClipboard = true) { Color color = Color.Red; if (checkClipboard) { string text = ClipboardHelpers.GetText(true); if (!string.IsNullOrEmpty(text) && ColorHelpers.ParseColor(text, out Color clipboardColor)) { color = clipboardColor; } } ColorPickerForm colorPickerForm = new ColorPickerForm(color, true); colorPickerForm.EnableScreenColorPickerButton(() => GetPointInfo(options)); colorPickerForm.Show(); }
private static RegionCaptureOptions GetRegionCaptureOptions(RegionCaptureOptions options) { if (options == null) { return(new RegionCaptureOptions()); } else { return(new RegionCaptureOptions() { SnapSizes = options.SnapSizes, ShowMagnifier = options.ShowMagnifier, UseSquareMagnifier = options.UseSquareMagnifier, MagnifierPixelCount = options.MagnifierPixelCount, MagnifierPixelSize = options.MagnifierPixelSize, ShowCrosshair = options.ShowCrosshair }); } }
public static SimpleWindowInfo GetWindowInfo(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.OneClick)) { form.Config = GetRegionCaptureOptions(options); form.Config.UseDimming = false; form.Config.ShowMagnifier = false; form.Config.ShowTips = false; form.Prepare(); form.ShowDialog(); if (form.Result == RegionResult.Region) { return(form.SelectedWindow); } } return(null); }
public static Image AnnotateImage(Image img, RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Editor)) { form.Config = GetRegionCaptureOptions(options); form.Config.DetectWindows = false; form.Config.ShowTips = false; form.Config.UseDimming = false; form.Prepare(img); form.ShowDialog(); if (form.Result == RegionResult.Region) { return(form.GetResultImage()); } } return(null); }
private static RegionCaptureOptions GetRegionCaptureOptions(RegionCaptureOptions options) { if (options == null) { return(new RegionCaptureOptions()); } else { return(new RegionCaptureOptions() { SnapSizes = options.SnapSizes, ShowMagnifier = options.ShowMagnifier, UseSquareMagnifier = options.UseSquareMagnifier, MagnifierPixelCount = options.MagnifierPixelCount, MagnifierPixelSize = options.MagnifierPixelSize, ShowCrosshair = options.ShowCrosshair, AnnotationOptions = options.AnnotationOptions, ScreenColorPickerInfoText = options.ScreenColorPickerInfoText }); } }
public static PointInfo GetPointInfo(RegionCaptureOptions options, Bitmap canvas = null) { RegionCaptureOptions newOptions = GetRegionCaptureOptions(options); newOptions.DetectWindows = false; newOptions.UseDimming = false; using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.ScreenColorPicker, newOptions, canvas)) { form.ShowDialog(); if (form.Result == RegionResult.Region) { PointInfo pointInfo = new PointInfo(); pointInfo.Position = form.CurrentPosition; pointInfo.Color = form.ShapeManager.GetCurrentColor(); return(pointInfo); } } return(null); }
public static Image CreateNewImage(RegionCaptureOptions options, Form form = null) { using (NewImageForm newImageForm = new NewImageForm(options)) { if (newImageForm.ShowDialog(form) == DialogResult.OK) { Color backgroundColor; if (options.EditorNewImageTransparent) { backgroundColor = Color.Transparent; } else { backgroundColor = options.EditorNewImageBackgroundColor; } return(ImageHelpers.CreateBitmap(options.EditorNewImageSize.Width, options.EditorNewImageSize.Height, backgroundColor)); } } return(null); }
public static PointInfo GetPointInfo(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.ScreenColorPicker)) { form.Config = GetRegionCaptureOptions(options); form.Config.DetectWindows = false; form.Config.ShowTips = false; form.Config.UseDimming = false; form.Prepare(); form.ShowDialog(); if (form.Result == RegionResult.Region) { PointInfo pointInfo = new PointInfo(); pointInfo.Position = form.CurrentPosition; pointInfo.Color = form.CurrentColor; return(pointInfo); } } return(null); }
private static RegionCaptureOptions GetRegionCaptureOptions(RegionCaptureOptions options) { if (options == null) { return new RegionCaptureOptions(); } else { return new RegionCaptureOptions() { SnapSizes = options.SnapSizes, ShowMagnifier = options.ShowMagnifier, UseSquareMagnifier = options.UseSquareMagnifier, MagnifierPixelCount = options.MagnifierPixelCount, MagnifierPixelSize = options.MagnifierPixelSize, ShowCrosshair = options.ShowCrosshair, AnnotationOptions = options.AnnotationOptions }; } }
public EditorStartupForm(RegionCaptureOptions options) { InitializeComponent(); Icon = ShareXResources.Icon; Options = options; }
public static PointInfo GetPointInfo(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.ScreenColorPicker)) { form.Config = GetRegionCaptureOptions(options); form.Config.DetectWindows = false; form.Config.ShowTips = false; form.Config.UseDimming = false; form.Prepare(); form.ShowDialog(); if (form.Result == RegionResult.Region) { PointInfo pointInfo = new PointInfo(); pointInfo.Position = form.CurrentPosition; pointInfo.Color = form.CurrentColor; return pointInfo; } } return null; }
public static SimpleWindowInfo GetWindowInfo(RegionCaptureOptions options) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.OneClick)) { form.Config = GetRegionCaptureOptions(options); form.Config.UseDimming = false; form.Config.ShowMagnifier = false; form.Config.ShowTips = false; form.Prepare(); form.ShowDialog(); if (form.Result == RegionResult.Region) { return form.SelectedWindow; } } return null; }
public static Image AnnotateImage(Image img, string filePath, RegionCaptureOptions options, Action <Image, string> saveImageRequested, Action <Image, string> saveImageAsRequested, Action <Image> copyImageRequested, Action <Image> uploadImageRequested, Action <Image> printImageRequested, bool taskMode = false) { RegionCaptureMode mode = taskMode ? RegionCaptureMode.TaskEditor : RegionCaptureMode.Editor; using (RegionCaptureForm form = new RegionCaptureForm(mode, options)) { form.ImageFilePath = filePath; form.Prepare(img); form.ShowDialog(); switch (form.Result) { case RegionResult.Close: // Esc case RegionResult.AnnotateCancelTask: return(null); case RegionResult.Region: // Enter case RegionResult.AnnotateRunAfterCaptureTasks: return(form.GetResultImage()); case RegionResult.Fullscreen: // Space or right click case RegionResult.AnnotateContinueTask: return((Image)form.Image.Clone()); case RegionResult.AnnotateSaveImage: using (Image resultSaveImage = form.GetResultImage()) { saveImageRequested(resultSaveImage, form.ImageFilePath); } break; case RegionResult.AnnotateSaveImageAs: using (Image resultSaveImageAs = form.GetResultImage()) { saveImageAsRequested(resultSaveImageAs, form.ImageFilePath); } break; case RegionResult.AnnotateCopyImage: using (Image resultCopyImage = form.GetResultImage()) { copyImageRequested(resultCopyImage); } break; case RegionResult.AnnotateUploadImage: Image resultUploadImage = form.GetResultImage(); uploadImageRequested(resultUploadImage); break; case RegionResult.AnnotatePrintImage: using (Image resultPrintImage = form.GetResultImage()) { printImageRequested(resultPrintImage); } break; } } return(null); }
public static Image ApplyRegionPathToImage(Image backgroundImage, GraphicsPath regionFillPath, RegionCaptureOptions options) { if (backgroundImage != null && regionFillPath != null) { Image img; Rectangle regionArea = Rectangle.Round(regionFillPath.GetBounds()); Rectangle screenRectangle = CaptureHelpers.GetScreenBounds0Based(); Rectangle newRegionArea = Rectangle.Intersect(regionArea, screenRectangle); using (GraphicsPath gp = (GraphicsPath)regionFillPath.Clone()) { using (Matrix matrix = new Matrix()) { gp.CloseFigure(); matrix.Translate(-Math.Max(0, regionArea.X), -Math.Max(0, regionArea.Y)); gp.Transform(matrix); } img = ImageHelpers.CropImage(backgroundImage, newRegionArea, gp); } return(img); } return(null); }
public static bool GetRectangleRegion(out Rectangle rect, RegionCaptureOptions options) { return(GetRectangleRegion(out rect, out _, options)); }
public static void AnnotateImage(Image img, string filePath, RegionCaptureOptions options, Action<Image> afterCaptureTasksRequested, Action<Image, string> saveImageRequested, Action<Image, string> saveImageAsRequested, Action<Image> copyImageRequested, Action<Image> uploadImageRequested, Action<Image> printImageRequested) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Editor)) { form.ImageFilePath = filePath; form.Config = GetRegionCaptureOptions(options); form.Config.DetectWindows = false; form.Config.ShowTips = false; form.Config.UseDimming = false; form.Prepare(img); form.ShowDialog(); if (form.Result != RegionResult.Close) { Image result = form.GetResultImage(); switch (form.Result) { default: result.Dispose(); break; case RegionResult.AnnotateRunAfterCaptureTasks: afterCaptureTasksRequested(result); break; case RegionResult.AnnotateSaveImage: saveImageRequested(result, form.ImageFilePath); result.Dispose(); break; case RegionResult.AnnotateSaveImageAs: saveImageAsRequested(result, form.ImageFilePath); result.Dispose(); break; case RegionResult.AnnotateCopyImage: copyImageRequested(result); result.Dispose(); break; case RegionResult.AnnotateUploadImage: uploadImageRequested(result); break; case RegionResult.AnnotatePrintImage: printImageRequested(result); result.Dispose(); break; } } } }
public RegionCaptureForm(RegionCaptureMode mode) { Mode = mode; ScreenRectangle = CaptureHelpers.GetScreenBounds(); ScreenRectangle0Based = CaptureHelpers.ScreenToClient(ScreenRectangle); ImageRectangle = ScreenRectangle0Based; InitializeComponent(); Config = new RegionCaptureOptions(); DrawableObjects = new List<DrawableObject>(); timerStart = new Stopwatch(); timerFPS = new Stopwatch(); colorBlinkAnimation = new ColorBlinkAnimation(); borderPen = new Pen(Color.Black); borderDotPen = new Pen(Color.White) { DashPattern = new float[] { 5, 5 } }; nodeBackgroundBrush = new SolidBrush(Color.White); infoFont = new Font("Verdana", 9); infoFontMedium = new Font("Verdana", 12); infoFontBig = new Font("Verdana", 16, FontStyle.Bold); textBackgroundBrush = new SolidBrush(Color.FromArgb(75, Color.Black)); textBackgroundPenWhite = new Pen(Color.FromArgb(50, Color.White)); textBackgroundPenBlack = new Pen(Color.FromArgb(150, Color.Black)); markerPen = new Pen(Color.FromArgb(200, Color.Red)); }
public static void AnnotateImage(Image img, string filePath, RegionCaptureOptions options, Action <Image> afterCaptureTasksRequested, Action <Image, string> saveImageRequested, Action <Image, string> saveImageAsRequested, Action <Image> copyImageRequested, Action <Image> uploadImageRequested, Action <Image> printImageRequested) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Editor)) { form.ImageFilePath = filePath; form.Config = GetRegionCaptureOptions(options); form.Config.DetectWindows = false; form.Config.ShowTips = false; form.Config.UseDimming = false; form.Prepare(img); form.ShowDialog(); if (form.Result != RegionResult.Close) { Image result = form.GetResultImage(); switch (form.Result) { default: result.Dispose(); break; case RegionResult.AnnotateRunAfterCaptureTasks: afterCaptureTasksRequested(result); break; case RegionResult.AnnotateSaveImage: saveImageRequested(result, form.ImageFilePath); result.Dispose(); break; case RegionResult.AnnotateSaveImageAs: saveImageAsRequested(result, form.ImageFilePath); result.Dispose(); break; case RegionResult.AnnotateCopyImage: copyImageRequested(result); result.Dispose(); break; case RegionResult.AnnotateUploadImage: uploadImageRequested(result); break; case RegionResult.AnnotatePrintImage: printImageRequested(result); result.Dispose(); break; } } } }
public static Image AnnotateImage(Image img, string filePath, RegionCaptureOptions options, Action <Image, string> saveImageRequested, Action <Image, string> saveImageAsRequested, Action <Image> copyImageRequested, Action <Image> uploadImageRequested, Action <Image> printImageRequested) { using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.TaskEditor)) { form.ImageFilePath = filePath; form.Config = GetRegionCaptureOptions(options); form.Config.DetectWindows = false; form.Config.ShowHotkeys = false; form.Config.UseDimming = false; form.Prepare(img); form.ShowDialog(); switch (form.Result) { case RegionResult.Close: // Esc case RegionResult.AnnotateCancelTask: return(null); case RegionResult.Region: // Enter case RegionResult.AnnotateRunAfterCaptureTasks: return(form.GetResultImage()); case RegionResult.Fullscreen: // Space case RegionResult.AnnotateContinueTask: return((Image)img.Clone()); case RegionResult.AnnotateSaveImage: using (Image resultSaveImage = form.GetResultImage()) { saveImageRequested(resultSaveImage, form.ImageFilePath); } break; case RegionResult.AnnotateSaveImageAs: using (Image resultSaveImageAs = form.GetResultImage()) { saveImageAsRequested(resultSaveImageAs, form.ImageFilePath); } break; case RegionResult.AnnotateCopyImage: using (Image resultCopyImage = form.GetResultImage()) { copyImageRequested(resultCopyImage); } break; case RegionResult.AnnotateUploadImage: Image resultUploadImage = form.GetResultImage(); uploadImageRequested(resultUploadImage); break; case RegionResult.AnnotatePrintImage: using (Image resultPrintImage = form.GetResultImage()) { printImageRequested(resultPrintImage); } break; } } return(null); }