From 44ac98fe3f7546b52699263366b35267bf892ce0 Mon Sep 17 00:00:00 2001 From: James South Date: Sun, 2 Feb 2014 12:06:17 +0000 Subject: [PATCH] More refactoring Former-commit-id: f6b24b098670c5ed8050a9b8a56d9b1a7302eed3 --- .../NET45/Helpers/ImageHelpers.cs | 39 ------------------ .../Extensions/DoubleExtensions.cs | 36 ++++++++++++++++ .../Extensions/IntegerExtensions.cs | 36 ++++++++++++++++ src/ImageProcessor/ImageProcessor.csproj | 3 +- src/ImageProcessor/Imaging/ColorQuantizer.cs | 2 +- src/ImageProcessor/Imaging/Convolution.cs | 9 ++-- .../Imaging/Filters/ComicMatrixFilter.cs | 25 ++++++----- src/ImageProcessor/Processors/Resize.cs | 24 +++++++++-- .../Test_Website_NET45/Images/circle.png | Bin 0 -> 6957 bytes .../NET45/Test_Website_NET45/Web.config | 2 +- .../config/imageprocessor/processing.config | 2 +- 11 files changed, 117 insertions(+), 61 deletions(-) create mode 100644 src/ImageProcessor/Extensions/DoubleExtensions.cs create mode 100644 src/ImageProcessor/Extensions/IntegerExtensions.cs create mode 100644 src/TestWebsites/NET45/Test_Website_NET45/Images/circle.png diff --git a/src/ImageProcessor.Web/NET45/Helpers/ImageHelpers.cs b/src/ImageProcessor.Web/NET45/Helpers/ImageHelpers.cs index c08a60bea2..c5000851ec 100644 --- a/src/ImageProcessor.Web/NET45/Helpers/ImageHelpers.cs +++ b/src/ImageProcessor.Web/NET45/Helpers/ImageHelpers.cs @@ -11,8 +11,6 @@ namespace ImageProcessor.Web.Helpers { #region Using - using System.Drawing.Imaging; - using System.IO; using System.Text.RegularExpressions; #endregion @@ -53,44 +51,7 @@ namespace ImageProcessor.Web.Helpers public static string GetExtension(string input) { Match match = FormatRegex.Matches(input)[0]; - return match.Success ? match.Value : string.Empty; } - - /// - /// Returns the correct image format based on the given file extension. - /// - /// The string containing the filename to check against. - /// The correct image format based on the given filename. - //public static ImageFormat GetImageFormat(string fileName) - //{ - // string extension = Path.GetExtension(fileName); - - // if (extension != null) - // { - // string ext = extension.ToUpperInvariant(); - - // switch (ext) - // { - // case ".ICO": - // return ImageFormat.Icon; - // case ".PNG": - // return ImageFormat.Png; - // case ".BMP": - // return ImageFormat.Bmp; - // case ".GIF": - // return ImageFormat.Gif; - // case ".TIF": - // case ".TIFF": - // return ImageFormat.Tiff; - // default: - // // Should be a jpeg. - // return ImageFormat.Jpeg; - // } - // } - - // // TODO: Show custom exception? - // return null; - //} } } diff --git a/src/ImageProcessor/Extensions/DoubleExtensions.cs b/src/ImageProcessor/Extensions/DoubleExtensions.cs new file mode 100644 index 0000000000..a21817df14 --- /dev/null +++ b/src/ImageProcessor/Extensions/DoubleExtensions.cs @@ -0,0 +1,36 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright (c) James South. +// Licensed under the Apache License, Version 2.0. +// +// +// Encapsulates a series of time saving extension methods to the class. +// +// -------------------------------------------------------------------------------------------------------------------- + +namespace ImageProcessor.Extensions +{ + /// + /// Encapsulates a series of time saving extension methods to the class. + /// + public static class DoubleExtensions + { + /// + /// Converts an value into a valid . + /// + /// If the value given is less than 0 or greater than 255, the value will be constrained into + /// those restricted ranges. + /// + /// + /// + /// The to convert. + /// + /// + /// The . + /// + public static byte ToByte(this double d) + { + return (byte)((d > byte.MaxValue) ? byte.MaxValue : ((d < byte.MinValue) ? byte.MinValue : d)); + } + } +} diff --git a/src/ImageProcessor/Extensions/IntegerExtensions.cs b/src/ImageProcessor/Extensions/IntegerExtensions.cs new file mode 100644 index 0000000000..a247d65110 --- /dev/null +++ b/src/ImageProcessor/Extensions/IntegerExtensions.cs @@ -0,0 +1,36 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright (c) James South. +// Licensed under the Apache License, Version 2.0. +// +// +// Encapsulates a series of time saving extension methods to the class. +// +// -------------------------------------------------------------------------------------------------------------------- + +namespace ImageProcessor.Extensions +{ + /// + /// Encapsulates a series of time saving extension methods to the class. + /// + public static class IntegerExtensions + { + /// + /// Converts an value into a valid . + /// + /// If the value given is less than 0 or greater than 255, the value will be constrained into + /// those restricted ranges. + /// + /// + /// + /// The to convert. + /// + /// + /// The . + /// + public static byte ToByte(this int integer) + { + return ((double)integer).ToByte(); + } + } +} diff --git a/src/ImageProcessor/ImageProcessor.csproj b/src/ImageProcessor/ImageProcessor.csproj index 0acdba19ff..5a5b7c98e6 100644 --- a/src/ImageProcessor/ImageProcessor.csproj +++ b/src/ImageProcessor/ImageProcessor.csproj @@ -59,8 +59,9 @@ - + + diff --git a/src/ImageProcessor/Imaging/ColorQuantizer.cs b/src/ImageProcessor/Imaging/ColorQuantizer.cs index 932da35090..004e1bc351 100644 --- a/src/ImageProcessor/Imaging/ColorQuantizer.cs +++ b/src/ImageProcessor/Imaging/ColorQuantizer.cs @@ -56,7 +56,7 @@ namespace ImageProcessor.Imaging int height = image.Height; Rectangle sourceRect = Rectangle.FromLTRB(0, 0, width, height); - // create a 24-bit rgb version of the source image + // Create a 24-bit rgb version of the source image using (Bitmap bitmapSource = new Bitmap(width, height, PixelFormat.Format32bppArgb)) { using (Graphics grfx = Graphics.FromImage(bitmapSource)) diff --git a/src/ImageProcessor/Imaging/Convolution.cs b/src/ImageProcessor/Imaging/Convolution.cs index 5e8aac4332..7663188e3a 100644 --- a/src/ImageProcessor/Imaging/Convolution.cs +++ b/src/ImageProcessor/Imaging/Convolution.cs @@ -14,6 +14,7 @@ namespace ImageProcessor.Imaging using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; + using ImageProcessor.Extensions; /// /// Provides methods for applying blurring and sharpening effects to an image.. @@ -383,10 +384,10 @@ namespace ImageProcessor.Imaging blue += this.Threshold; alpha += this.Threshold; - resultBuffer[byteOffset] = (byte)((blue > 255) ? 255 : ((blue < 0) ? 0 : blue)); - resultBuffer[byteOffset + 1] = (byte)((green > 255) ? 255 : ((green < 0) ? 0 : green)); - resultBuffer[byteOffset + 2] = (byte)((red > 255) ? 255 : ((red < 0) ? 0 : red)); - resultBuffer[byteOffset + 3] = (byte)((alpha > 255) ? 255 : ((alpha < 0) ? 0 : alpha)); + resultBuffer[byteOffset] = blue.ToByte(); // (byte)((blue > 255) ? 255 : ((blue < 0) ? 0 : blue)); + resultBuffer[byteOffset + 1] = green.ToByte(); // (byte)((green > 255) ? 255 : ((green < 0) ? 0 : green)); + resultBuffer[byteOffset + 2] = red.ToByte(); // (byte)((red > 255) ? 255 : ((red < 0) ? 0 : red)); + resultBuffer[byteOffset + 3] = alpha.ToByte(); // (byte)((alpha > 255) ? 255 : ((alpha < 0) ? 0 : alpha)); } } diff --git a/src/ImageProcessor/Imaging/Filters/ComicMatrixFilter.cs b/src/ImageProcessor/Imaging/Filters/ComicMatrixFilter.cs index 08d0e66318..408a4b6e54 100644 --- a/src/ImageProcessor/Imaging/Filters/ComicMatrixFilter.cs +++ b/src/ImageProcessor/Imaging/Filters/ComicMatrixFilter.cs @@ -17,6 +17,9 @@ namespace ImageProcessor.Imaging.Filters using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Runtime.InteropServices; + + using ImageProcessor.Extensions; + #endregion /// @@ -307,14 +310,10 @@ namespace ImageProcessor.Imaging.Filters double green = Math.Abs(greenBin[maxIndex] / maxIntensity); double red = Math.Abs(redBin[maxIndex] / maxIntensity); - blue = blue > 255 ? 255 : (blue < 0 ? 0 : blue); - green = green > 255 ? 255 : (green < 0 ? 0 : green); - red = red > 255 ? 255 : (red < 0 ? 0 : red); - - resultBuffer[byteOffset] = (byte)blue; - resultBuffer[byteOffset + 1] = (byte)green; - resultBuffer[byteOffset + 2] = (byte)red; - resultBuffer[byteOffset + 3] = 255; + resultBuffer[byteOffset] = blue.ToByte(); + resultBuffer[byteOffset + 1] = green.ToByte(); + resultBuffer[byteOffset + 2] = red.ToByte(); + resultBuffer[byteOffset + 3] = pixelBuffer[byteOffset + 3]; } } @@ -333,7 +332,7 @@ namespace ImageProcessor.Imaging.Filters /// /// Detects and draws edges. - /// TODO: Move this to another class and do move edge detection. + /// TODO: Move this to another class and do edge detection. /// /// /// The source bitmap. @@ -494,7 +493,7 @@ namespace ImageProcessor.Imaging.Filters } else { - // These would normally be used to transfer the correct value accross. + // These would normally be used to transfer the correct value across. // blue = pixelBuffer[byteOffset]; // green = pixelBuffer[byteOffset + 1]; // red = pixelBuffer[byteOffset + 2]; @@ -581,7 +580,11 @@ namespace ImageProcessor.Imaging.Filters for (int i = rectangle.Height * rectangle.Width; i > 0; i--) { // Copy the alpha values across. - destinationRgbValues[d] = sourceRgbValues[s]; + if (destinationRgbValues[d] != 0) + { + destinationRgbValues[d] = sourceRgbValues[s]; + } + d += 4; s += 4; } diff --git a/src/ImageProcessor/Processors/Resize.cs b/src/ImageProcessor/Processors/Resize.cs index 85cbd93500..9cb1fbc5ad 100644 --- a/src/ImageProcessor/Processors/Resize.cs +++ b/src/ImageProcessor/Processors/Resize.cs @@ -33,7 +33,7 @@ namespace ImageProcessor.Processors /// /// The regular expression to search strings for. /// - private static readonly Regex QueryRegex = new Regex(@"((width|height)=\d+)|(mode=(pad|stretch|crop|max))|(anchor=(top|bottom|left|right|center))|(bgcolor=([0-9a-fA-F]{3}){1,2})|(upscale=false)", RegexOptions.Compiled); + private static readonly Regex QueryRegex = new Regex(@"((width|height)=\d+)|(mode=(pad|stretch|crop|max))|(anchor=(top|bottom|left|right|center))|(bgcolor=(transparent|\d+,\d+,\d+,\d+|([0-9a-fA-F]{3}){1,2}))|(upscale=false)", RegexOptions.Compiled); /// /// The regular expression to search strings for the size attribute. @@ -53,7 +53,7 @@ namespace ImageProcessor.Processors /// /// The regular expression to search strings for the color attribute. /// - private static readonly Regex ColorRegex = new Regex(@"bgcolor=([0-9a-fA-F]{3}){1,2}", RegexOptions.Compiled); + private static readonly Regex ColorRegex = new Regex(@"bgcolor=(transparent|\d+,\d+,\d+,\d+|([0-9a-fA-F]{3}){1,2})", RegexOptions.Compiled); /// /// The regular expression to search strings for the upscale attribute. @@ -530,8 +530,26 @@ namespace ImageProcessor.Processors { foreach (Match match in ColorRegex.Matches(input)) { + string value = match.Value.Split('=')[1]; + + if (value == "transparent") + { + return Color.Transparent; + } + + if (value.Contains(",")) + { + int[] split = value.ToPositiveIntegerArray(); + byte red = split[0].ToByte(); + byte green = split[1].ToByte(); + byte blue = split[2].ToByte(); + byte alpha = split[3].ToByte(); + + return Color.FromArgb(alpha, red, green, blue); + } + // Split on color-hex - return ColorTranslator.FromHtml("#" + match.Value.Split('=')[1]); + return ColorTranslator.FromHtml("#" + value); } return Color.Transparent; diff --git a/src/TestWebsites/NET45/Test_Website_NET45/Images/circle.png b/src/TestWebsites/NET45/Test_Website_NET45/Images/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..029091dbc72bf71881302caf881721fa18a235ad GIT binary patch literal 6957 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 literal 0 HcmV?d00001 diff --git a/src/TestWebsites/NET45/Test_Website_NET45/Web.config b/src/TestWebsites/NET45/Test_Website_NET45/Web.config index 110524d7e1..133506eeb3 100644 --- a/src/TestWebsites/NET45/Test_Website_NET45/Web.config +++ b/src/TestWebsites/NET45/Test_Website_NET45/Web.config @@ -16,7 +16,7 @@ - + diff --git a/src/TestWebsites/NET45/Test_Website_NET45/config/imageprocessor/processing.config b/src/TestWebsites/NET45/Test_Website_NET45/config/imageprocessor/processing.config index 82ed2e9954..016f42636b 100644 --- a/src/TestWebsites/NET45/Test_Website_NET45/config/imageprocessor/processing.config +++ b/src/TestWebsites/NET45/Test_Website_NET45/config/imageprocessor/processing.config @@ -23,7 +23,7 @@ - +