diff --git a/ShareX.HelpersLib/Enums.cs b/ShareX.HelpersLib/Enums.cs index 7447ff036..47600d855 100644 --- a/ShareX.HelpersLib/Enums.cs +++ b/ShareX.HelpersLib/Enums.cs @@ -167,4 +167,14 @@ public enum HotkeyStatus Failed, NotConfigured } + + public enum ResizeMode + { + [Description("Resizes all images to the specified size.")] + ResizeAll, + [Description("Only resize image if it is bigger than specified size.")] + ResizeIfBigger, + [Description("Only resize image if it is smaller than specified size.")] + ResizeIfSmaller + } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Resize.cs b/ShareX.ImageEffectsLib/Manipulations/Resize.cs index cc49aa5dd..809d3cade 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Resize.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Resize.cs @@ -37,8 +37,8 @@ public class Resize : ImageEffect [DefaultValue(0), Description("Use height as 0 to automatically adjust height to maintain aspect ratio.")] public int Height { get; set; } - [DefaultValue(false), Description("Only resize image if it is bigger than specified size.")] - public bool ResizeIfBigger { get; set; } + [DefaultValue(ResizeMode.ResizeAll)] + public ResizeMode Mode { get; set; } public Resize() { @@ -52,10 +52,8 @@ public override Image Apply(Image img) int width = Width <= 0 ? (int)((float)Height / img.Height * img.Width) : Width; int height = Height <= 0 ? (int)((float)Width / img.Width * img.Height) : Height; - if (ResizeIfBigger && img.Width <= width && img.Height <= height) - { - return img; - } + if (Mode == ResizeMode.ResizeIfBigger && img.Width <= width && img.Height <= height) return img; + if (Mode == ResizeMode.ResizeIfSmaller && img.Width >= width && img.Height >= height) return img; return ImageHelpers.ResizeImage(img, width, height); }