diff --git a/ShareX.HelpersLib/Properties/Resources.Designer.cs b/ShareX.HelpersLib/Properties/Resources.Designer.cs
index 175e5e8e1..f820c8467 100644
--- a/ShareX.HelpersLib/Properties/Resources.Designer.cs
+++ b/ShareX.HelpersLib/Properties/Resources.Designer.cs
@@ -1320,6 +1320,24 @@ internal class Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Capture region (Simple annotate).
+ ///
+ internal static string HotkeyType_RectangleAnnotate {
+ get {
+ return ResourceManager.GetString("HotkeyType_RectangleAnnotate", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Screen capture.
+ ///
+ internal static string HotkeyType_RectangleAnnotate_Category {
+ get {
+ return ResourceManager.GetString("HotkeyType_RectangleAnnotate_Category", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Capture region (Light).
///
diff --git a/ShareX.HelpersLib/Properties/Resources.resx b/ShareX.HelpersLib/Properties/Resources.resx
index dfedda435..5a27df187 100644
--- a/ShareX.HelpersLib/Properties/Resources.resx
+++ b/ShareX.HelpersLib/Properties/Resources.resx
@@ -902,4 +902,10 @@ Would you like to download it?
Screen capture
+
+ Capture region (Simple annotate)
+
+
+ Screen capture
+
\ No newline at end of file
diff --git a/ShareX.HelpersLib/Properties/Resources.tr.resx b/ShareX.HelpersLib/Properties/Resources.tr.resx
index b35361cc3..0ca4cb908 100644
--- a/ShareX.HelpersLib/Properties/Resources.tr.resx
+++ b/ShareX.HelpersLib/Properties/Resources.tr.resx
@@ -880,4 +880,10 @@ Dosya boyutu: {2:n0} / {3:n0} KB
Yazı tanı (OCR)
+
+ Ekran yakalama
+
+
+ Bölge yakalama (Basit dipnot)
+
\ No newline at end of file
diff --git a/ShareX/Enums.cs b/ShareX/Enums.cs
index 8752fda96..a06d46f63 100644
--- a/ShareX/Enums.cs
+++ b/ShareX/Enums.cs
@@ -163,6 +163,7 @@ public enum HotkeyType // Localized + Category
RectangleRegion,
RectangleLight,
RectangleTransparent,
+ RectangleAnnotate,
PolygonRegion,
FreeHandRegion,
CustomRegion,
diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs
index 296167e5d..ef0ed2f30 100644
--- a/ShareX/Forms/MainForm.cs
+++ b/ShareX/Forms/MainForm.cs
@@ -1746,7 +1746,7 @@ private void tsmiImagePreviewAutomatic_Click(object sender, EventArgs e)
private delegate Image ScreenCaptureDelegate();
- private enum LastRegionCaptureType { Default, Light, Transparent }
+ private enum LastRegionCaptureType { Default, Light, Transparent, Annotate }
private LastRegionCaptureType lastRegionCaptureType = LastRegionCaptureType.Default;
@@ -1853,6 +1853,9 @@ private void ExecuteJob(TaskSettings taskSettings, HotkeyType job)
case HotkeyType.RectangleTransparent:
CaptureRectangleTransparent(safeTaskSettings, false);
break;
+ case HotkeyType.RectangleAnnotate:
+ CaptureRectangleAnnotate(safeTaskSettings, false);
+ break;
case HotkeyType.PolygonRegion:
CaptureScreenshot(CaptureType.Polygon, safeTaskSettings, false);
break;
@@ -2261,6 +2264,31 @@ private void CaptureRectangleTransparent(TaskSettings taskSettings = null, bool
}, CaptureType.Rectangle, taskSettings, autoHideForm);
}
+ private void CaptureRectangleAnnotate(TaskSettings taskSettings = null, bool autoHideForm = true)
+ {
+ if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
+
+ DoCapture(() =>
+ {
+ Image img = null;
+
+ using (RectangleRegionAnnotateForm rectangleAnnotate = new RectangleRegionAnnotateForm(taskSettings.CaptureSettingsReference.RectangleAnnotateOptions))
+ {
+ if (rectangleAnnotate.ShowDialog() == DialogResult.OK)
+ {
+ img = rectangleAnnotate.GetAreaImage();
+
+ if (img != null)
+ {
+ lastRegionCaptureType = LastRegionCaptureType.Annotate;
+ }
+ }
+ }
+
+ return img;
+ }, CaptureType.Rectangle, taskSettings, autoHideForm);
+ }
+
private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = true)
{
switch (lastRegionCaptureType)
@@ -2313,6 +2341,22 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
CaptureRectangleTransparent(taskSettings, autoHideForm);
}
break;
+ case LastRegionCaptureType.Annotate:
+ if (!RectangleRegionAnnotateForm.LastSelectionRectangle0Based.IsEmpty)
+ {
+ DoCapture(() =>
+ {
+ using (Image screenshot = Screenshot.CaptureFullscreen())
+ {
+ return ImageHelpers.CropImage(screenshot, RectangleRegionAnnotateForm.LastSelectionRectangle0Based);
+ }
+ }, CaptureType.LastRegion, taskSettings, autoHideForm);
+ }
+ else
+ {
+ CaptureRectangleAnnotate(taskSettings, autoHideForm);
+ }
+ break;
}
}
diff --git a/ShareX/TaskSettings.cs b/ShareX/TaskSettings.cs
index 69bd21339..07c88f5fd 100644
--- a/ShareX/TaskSettings.cs
+++ b/ShareX/TaskSettings.cs
@@ -343,6 +343,12 @@ public class TaskSettingsCapture
public ScrollingCaptureOptions ScrollingCaptureOptions = new ScrollingCaptureOptions();
#endregion Capture / Scrolling capture
+
+ #region Capture / Rectangle annotate
+
+ public RectangleAnnotateOptions RectangleAnnotateOptions = new RectangleAnnotateOptions();
+
+ #endregion Capture / Rectangle annotate
}
public class TaskSettingsUpload