From 6799edaa1bd099887758bd9363e048327d5a8e8e Mon Sep 17 00:00:00 2001 From: Jaex Date: Tue, 16 Mar 2021 08:08:41 +0300 Subject: [PATCH] Added dash style option to "Border" image effect --- ShareX.HelpersLib/Helpers/ImageHelpers.cs | 13 +++++++------ ShareX.ImageEffectsLib/Drawings/DrawBorder.cs | 8 ++++++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ShareX.HelpersLib/Helpers/ImageHelpers.cs b/ShareX.HelpersLib/Helpers/ImageHelpers.cs index f71380df0..106f66f58 100644 --- a/ShareX.HelpersLib/Helpers/ImageHelpers.cs +++ b/ShareX.HelpersLib/Helpers/ImageHelpers.cs @@ -655,15 +655,16 @@ public static Bitmap AddReflection(Image img, int percentage, int maxAlpha, int return reflection; } - public static Bitmap DrawBorder(Bitmap bmp, Color borderColor, int borderSize, BorderType borderType) + public static Bitmap DrawBorder(Bitmap bmp, Color borderColor, int borderSize, BorderType borderType, DashStyle dashStyle = DashStyle.Solid) { - using (Pen borderPen = new Pen(borderColor, borderSize) { Alignment = PenAlignment.Inset }) + using (Pen borderPen = new Pen(borderColor, borderSize) { Alignment = PenAlignment.Inset, DashStyle = dashStyle }) { return DrawBorder(bmp, borderPen, borderType); } } - public static Bitmap DrawBorder(Bitmap bmp, Color fromBorderColor, Color toBorderColor, LinearGradientMode gradientType, int borderSize, BorderType borderType) + public static Bitmap DrawBorder(Bitmap bmp, Color fromBorderColor, Color toBorderColor, LinearGradientMode gradientType, int borderSize, BorderType borderType, + DashStyle dashStyle = DashStyle.Solid) { int width = bmp.Width; int height = bmp.Height; @@ -675,13 +676,13 @@ public static Bitmap DrawBorder(Bitmap bmp, Color fromBorderColor, Color toBorde } using (LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, width, height), fromBorderColor, toBorderColor, gradientType)) - using (Pen borderPen = new Pen(brush, borderSize) { Alignment = PenAlignment.Inset }) + using (Pen borderPen = new Pen(brush, borderSize) { Alignment = PenAlignment.Inset, DashStyle = dashStyle }) { return DrawBorder(bmp, borderPen, borderType); } } - public static Bitmap DrawBorder(Bitmap bmp, GradientInfo gradientInfo, int borderSize, BorderType borderType) + public static Bitmap DrawBorder(Bitmap bmp, GradientInfo gradientInfo, int borderSize, BorderType borderType, DashStyle dashStyle = DashStyle.Solid) { int width = bmp.Width; int height = bmp.Height; @@ -693,7 +694,7 @@ public static Bitmap DrawBorder(Bitmap bmp, GradientInfo gradientInfo, int borde } using (LinearGradientBrush brush = gradientInfo.GetGradientBrush(new Rectangle(0, 0, width, height))) - using (Pen borderPen = new Pen(brush, borderSize) { Alignment = PenAlignment.Inset }) + using (Pen borderPen = new Pen(brush, borderSize) { Alignment = PenAlignment.Inset, DashStyle = dashStyle }) { return DrawBorder(bmp, borderPen, borderType); } diff --git a/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs b/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs index b3128391f..bcb1691c7 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs @@ -27,6 +27,7 @@ You should have received a copy of the GNU General Public License using System.ComponentModel; using System.Drawing; using System.Drawing.Design; +using System.Drawing.Drawing2D; namespace ShareX.ImageEffectsLib { @@ -54,6 +55,9 @@ public int Size [DefaultValue(typeof(Color), "Black"), Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))] public Color Color { get; set; } + [DefaultValue(DashStyle.Solid), TypeConverter(typeof(EnumProperNameConverter))] + public DashStyle DashStyle { get; set; } + [DefaultValue(false)] public bool UseGradient { get; set; } @@ -79,10 +83,10 @@ public override Bitmap Apply(Bitmap bmp) { if (UseGradient && Gradient != null && Gradient.IsValid) { - return ImageHelpers.DrawBorder(bmp, Gradient, Size, Type); + return ImageHelpers.DrawBorder(bmp, Gradient, Size, Type, DashStyle); } - return ImageHelpers.DrawBorder(bmp, Color, Size, Type); + return ImageHelpers.DrawBorder(bmp, Color, Size, Type, DashStyle); } } } \ No newline at end of file