From 84d8997cfd7d2adea1c031b0d0d38a00ea98f9e2 Mon Sep 17 00:00:00 2001 From: Jaex Date: Tue, 23 May 2017 17:28:56 +0300 Subject: [PATCH] Fix crop image in multi monitor --- .../Shapes/Drawing/ImageScreenDrawingShape.cs | 1 - ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageScreenDrawingShape.cs b/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageScreenDrawingShape.cs index d7b6ce243..8db1570f8 100644 --- a/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageScreenDrawingShape.cs +++ b/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageScreenDrawingShape.cs @@ -24,7 +24,6 @@ You should have received a copy of the GNU General Public License #endregion License Information (GPL v3) using System.Drawing; -using ShareX.HelpersLib; namespace ShareX.ScreenCaptureLib { diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index ce4351b39..ae95465aa 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -1248,11 +1248,13 @@ public void CropArea(Rectangle rect) public Image CropImage(Rectangle rect, bool onlyIfSizeDifferent = false) { - rect.X -= form.ImageRectangle.X; - rect.Y -= form.ImageRectangle.Y; - rect = CaptureHelpers.ScreenToClient(rect); + Point offset = CaptureHelpers.ScreenToClient(form.ImageRectangle.Location); + + rect.X -= offset.X; + rect.Y -= offset.Y; + rect.Intersect(new Rectangle(0, 0, form.Image.Width, form.Image.Height)); if (rect.IsValid() && (!onlyIfSizeDifferent || rect.Size != form.Image.Size))