Added "Padding" option to "Auto crop" image effect

This commit is contained in:
Jaex 2023-04-24 13:45:22 +03:00
parent 911c81b065
commit 1591951c08
2 changed files with 23 additions and 4 deletions

View file

@ -452,6 +452,11 @@ public static Bitmap AddCanvas(Image img, int margin)
return AddCanvas(img, new Padding(margin));
}
public static Bitmap AddCanvas(Image img, int margin, Color canvasColor)
{
return AddCanvas(img, new Padding(margin), canvasColor);
}
public static Bitmap AddCanvas(Image img, Padding margin)
{
return AddCanvas(img, margin, Color.Transparent);
@ -2464,7 +2469,7 @@ public static void DrawColorPickerIcon(Graphics g, Color color, Rectangle rect,
}
public static Bitmap AutoCropImage(Bitmap bmp, bool sameColorCrop = false,
AnchorStyles sides = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right)
AnchorStyles sides = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right, int padding = 0)
{
Rectangle source = new Rectangle(0, 0, bmp.Width, bmp.Height);
Rectangle rect = FindAutoCropRectangle(bmp, sameColorCrop, sides);
@ -2475,8 +2480,19 @@ public static void DrawColorPickerIcon(Graphics g, Color color, Rectangle rect,
if (croppedBitmap != null)
{
bmp.Dispose();
return croppedBitmap;
using (bmp)
{
if (padding > 0)
{
using (croppedBitmap)
{
Color color = bmp.GetPixel(0, 0);
return AddCanvas(croppedBitmap, padding, color);
}
}
return croppedBitmap;
}
}
}

View file

@ -36,6 +36,9 @@ internal class AutoCrop : ImageEffect
[DefaultValue(AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right)]
public AnchorStyles Sides { get; set; }
[DefaultValue(0)]
public int Padding { get; set; }
public AutoCrop()
{
this.ApplyDefaultPropertyValues();
@ -43,7 +46,7 @@ public AutoCrop()
public override Bitmap Apply(Bitmap bmp)
{
return ImageHelpers.AutoCropImage(bmp, false, Sides);
return ImageHelpers.AutoCropImage(bmp, true, Sides, Padding);
}
}
}