From 9b4e401ab5c7cb8e375d2ba58199599754eda012 Mon Sep 17 00:00:00 2001 From: James South Date: Fri, 16 Aug 2013 14:28:33 +0100 Subject: [PATCH] v1.7.0.2 Watermark now automatically wraps text. Former-commit-id: 38e144ab55565757aae5d8a391e39ecb96fd194f --- src/ImageProcessor/Processors/Watermark.cs | 110 ++++++++++-------- src/ImageProcessor/Properties/AssemblyInfo.cs | 4 +- src/Nuget/ImageProcessor.1.7.0.2.nupkg | Bin 0 -> 54409 bytes src/Nuget/imageprocessor.128.png | 4 +- .../Views/Home/Index.cshtml | 2 +- 5 files changed, 65 insertions(+), 55 deletions(-) create mode 100644 src/Nuget/ImageProcessor.1.7.0.2.nupkg diff --git a/src/ImageProcessor/Processors/Watermark.cs b/src/ImageProcessor/Processors/Watermark.cs index f5900fde9..25b449987 100644 --- a/src/ImageProcessor/Processors/Watermark.cs +++ b/src/ImageProcessor/Processors/Watermark.cs @@ -24,50 +24,50 @@ namespace ImageProcessor.Processors /// public class Watermark : IGraphicsProcessor { -/// -/// The regular expression to search strings for. -/// -private static readonly Regex QueryRegex = new Regex(@"watermark=[^&]*", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the text attribute. -/// -private static readonly Regex TextRegex = new Regex(@"text-[^/:?#\[\]@!$&'()*%\|,;=]+", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the position attribute. -/// -private static readonly Regex PositionRegex = new Regex(@"position-\d+-\d+", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the color attribute. -/// -private static readonly Regex ColorRegex = new Regex(@"color-([0-9a-fA-F]{3}){1,2}", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the font size attribute. -/// -private static readonly Regex FontSizeRegex = new Regex(@"size-\d{1,3}", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the font style attribute. -/// -private static readonly Regex FontStyleRegex = new Regex(@"style-(bold|italic|regular|strikeout|underline)", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the font family attribute. -/// -private static readonly Regex FontFamilyRegex = new Regex(@"font-[^/:?#\[\]@!$&'()*%\|,;=0-9]+", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the opacity attribute. -/// -private static readonly Regex OpacityRegex = new Regex(@"opacity-(?:100|[1-9]?[0-9])", RegexOptions.Compiled); - -/// -/// The regular expression to search strings for the shadow attribute. -/// -private static readonly Regex ShadowRegex = new Regex(@"shadow-true", RegexOptions.Compiled); + /// + /// The regular expression to search strings for. + /// + private static readonly Regex QueryRegex = new Regex(@"watermark=[^&]*", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the text attribute. + /// + private static readonly Regex TextRegex = new Regex(@"text-[^/:?#\[\]@!$&'()*%\|,;=]+", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the position attribute. + /// + private static readonly Regex PositionRegex = new Regex(@"position-\d+-\d+", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the color attribute. + /// + private static readonly Regex ColorRegex = new Regex(@"color-([0-9a-fA-F]{3}){1,2}", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the font size attribute. + /// + private static readonly Regex FontSizeRegex = new Regex(@"size-\d{1,3}", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the font style attribute. + /// + private static readonly Regex FontStyleRegex = new Regex(@"style-(bold|italic|regular|strikeout|underline)", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the font family attribute. + /// + private static readonly Regex FontFamilyRegex = new Regex(@"font-[^/:?#\[\]@!$&'()*%\|,;=0-9]+", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the opacity attribute. + /// + private static readonly Regex OpacityRegex = new Regex(@"opacity-(?:100|[1-9]?[0-9])", RegexOptions.Compiled); + + /// + /// The regular expression to search strings for the shadow attribute. + /// + private static readonly Regex ShadowRegex = new Regex(@"shadow-true", RegexOptions.Compiled); #region IGraphicsProcessor Members /// @@ -173,7 +173,7 @@ private static readonly Regex ShadowRegex = new Regex(@"shadow-true", RegexOptio try { - // Dont use an object initializer here. + // Don't use an object initializer here. newImage = new Bitmap(image); newImage.Tag = image.Tag; @@ -193,12 +193,12 @@ private static readonly Regex ShadowRegex = new Regex(@"shadow-true", RegexOptio { Point origin = textLayer.Position; + // Work out the size of the text. + SizeF textSize = graphics.MeasureString(text, font, new SizeF(image.Width, image.Height), drawFormat); + // We need to ensure that there is a position set for the watermark if (origin == Point.Empty) { - // Work out the size of the text. - SizeF textSize = graphics.MeasureString(text, font, new SizeF(image.Width, image.Height), drawFormat); - int x = (int)(image.Width - textSize.Width) / 2; int y = (int)(image.Height - textSize.Height) / 2; origin = new Point(x, y); @@ -207,6 +207,9 @@ private static readonly Regex ShadowRegex = new Regex(@"shadow-true", RegexOptio // Set the hinting and draw the text. graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; + // Create bounds for the text. + RectangleF bounds; + if (textLayer.DropShadow) { // Shadow opacity should change with the base opacity. @@ -219,11 +222,18 @@ private static readonly Regex ShadowRegex = new Regex(@"shadow-true", RegexOptio // Magic number but it's based on artistic preference. int shadowDiff = (int)Math.Ceiling(fontSize / 24f); Point shadowPoint = new Point(origin.X + shadowDiff, origin.Y + shadowDiff); - graphics.DrawString(text, font, shadowBrush, shadowPoint, drawFormat); + + // Set the bounds so any overlapping text will wrap. + bounds = new RectangleF(shadowPoint, new SizeF(image.Width - shadowPoint.X, image.Height - shadowPoint.Y)); + + graphics.DrawString(text, font, shadowBrush, bounds, drawFormat); } } - graphics.DrawString(text, font, brush, origin, drawFormat); + // Set the bounds so any overlapping text will wrap. + bounds = new RectangleF(origin, new SizeF(image.Width - origin.X, image.Height - origin.Y)); + + graphics.DrawString(text, font, brush, bounds, drawFormat); } } } diff --git a/src/ImageProcessor/Properties/AssemblyInfo.cs b/src/ImageProcessor/Properties/AssemblyInfo.cs index 68075c37d..7e9e403f3 100644 --- a/src/ImageProcessor/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor/Properties/AssemblyInfo.cs @@ -32,6 +32,6 @@ using System.Security; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.7.0.1")] -[assembly: AssemblyFileVersion("1.7.0.1")] +[assembly: AssemblyVersion("1.7.0.2")] +[assembly: AssemblyFileVersion("1.7.0.2")] diff --git a/src/Nuget/ImageProcessor.1.7.0.2.nupkg b/src/Nuget/ImageProcessor.1.7.0.2.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..7d0ffca1cb91d7f4d2502a488ce0908a77550dd8 GIT binary patch literal 54409 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 literal 0 HcmV?d00001 diff --git a/src/Nuget/imageprocessor.128.png b/src/Nuget/imageprocessor.128.png index 0cea636f8..cd6f911c9 100644 --- a/src/Nuget/imageprocessor.128.png +++ b/src/Nuget/imageprocessor.128.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:594e72bfc3c1804871e083684e8927f92b9619c5b42855b8a530556ce037d356 -size 5724 +oid sha256:d4e936585d0857f7c38a3c70e9dd5d2414a84af39db30b0be698bc151d7a9225 +size 6510 diff --git a/src/TestWebsites/NET45/Test_Website_NET45/Views/Home/Index.cshtml b/src/TestWebsites/NET45/Test_Website_NET45/Views/Home/Index.cshtml index 2efa21511..d80616784 100644 --- a/src/TestWebsites/NET45/Test_Website_NET45/Views/Home/Index.cshtml +++ b/src/TestWebsites/NET45/Test_Website_NET45/Views/Home/Index.cshtml @@ -70,7 +70,7 @@

Watermark

- +

Format