diff --git a/GreenshotOCRPlugin/OCRPlugin.cs b/GreenshotOCRPlugin/OCRPlugin.cs index ae4e6be06..7be1cb8a3 100644 --- a/GreenshotOCRPlugin/OCRPlugin.cs +++ b/GreenshotOCRPlugin/OCRPlugin.cs @@ -147,8 +147,16 @@ namespace GreenshotOCR { // Also we need to check the size, resize if needed to 130x130 this is the minimum if (surface.Image.Width < MIN_WIDTH || surface.Image.Height < MIN_HEIGHT) { - IEffect resizeEffect = new ResizeEffect(Math.Max(surface.Image.Width, MIN_WIDTH), Math.Max(surface.Image.Height, MIN_HEIGHT), true); - outputSettings.Effects.Add(resizeEffect); + int addedWidth = MIN_WIDTH - surface.Image.Width; + if (addedWidth < 0) { + addedWidth = 0; + } + int addedHeight = MIN_HEIGHT - surface.Image.Height; + if (addedHeight < 0) { + addedHeight = 0; + } + IEffect effect = new ResizeCanvasEffect(addedWidth / 2, addedWidth / 2, addedHeight / 2, addedHeight / 2); + outputSettings.Effects.Add(effect); } filePath = ImageOutput.SaveToTmpFile(surface, outputSettings, null); diff --git a/GreenshotPlugin/Core/ImageHelper.cs b/GreenshotPlugin/Core/ImageHelper.cs index 9e767a15a..cd54f174f 100644 --- a/GreenshotPlugin/Core/ImageHelper.cs +++ b/GreenshotPlugin/Core/ImageHelper.cs @@ -1321,7 +1321,17 @@ namespace GreenshotPlugin.Core { nPercentW = ((float)newWidth / (float)sourceImage.Width); nPercentH = ((float)newHeight / (float)sourceImage.Height); if (maintainAspectRatio) { - if (nPercentH != 0 && nPercentH < nPercentW) { + if (nPercentW == 1) { + nPercentW = nPercentH; + if (canvasUseNewSize) { + destX = Math.Max(0, System.Convert.ToInt32((newWidth - (sourceImage.Width * nPercentW)) / 2)); + } + } else if (nPercentH == 1) { + nPercentH = nPercentW; + if (canvasUseNewSize) { + destY = Math.Max(0, System.Convert.ToInt32((newHeight - (sourceImage.Height * nPercentH)) / 2)); + } + } else if (nPercentH != 0 && nPercentH < nPercentW) { nPercentW = nPercentH; if (canvasUseNewSize) { destX = Math.Max(0, System.Convert.ToInt32((newWidth - (sourceImage.Width * nPercentW)) / 2));