From 163f78e3ab3ffcc707e222c0c9f6bfb42f45aa16 Mon Sep 17 00:00:00 2001 From: JimBobSquarePants Date: Sun, 7 Apr 2013 22:44:54 +0100 Subject: [PATCH] v2.1.2.0 Former-commit-id: 66af63f486c99e74bbb04b616478c3bdd416d5ae --- .../RegularExpressionUnitTests.cs | 6 +- src/ImageProcessor.Web/Caching/DiskCache.cs | 2 +- .../Properties/AssemblyInfo.cs | 4 +- src/ImageProcessor/ImageFactory.cs | 20 ++- src/ImageProcessor/Imaging/RotateLayer.cs | 28 +++ src/ImageProcessor/Imaging/TextLayer.cs | 2 +- src/ImageProcessor/Processors/Rotate.cs | 7 +- src/ImageProcessor/Properties/AssemblyInfo.cs | 4 +- src/Nuget/ImageProcessor.1.5.0.0.nupkg | Bin 0 -> 26820 bytes ...Processor.Web.2.1.2.0.nupkg.REMOVED.git-id | 1 + src/Test/Test/Controllers/HomeController.cs | 66 ++++++++ ...0px_228406_276791782435436_815038966_n.jpg | 3 + .../240px_MSwanson - Wide Large - Rock 02.jpg | 3 + src/Test/Test/Resized/240px_Neck2-1.jpg | 3 + ...0px_228406_276791782435436_815038966_n.jpg | 3 + .../320px_MSwanson - Wide Large - Rock 02.jpg | 3 + src/Test/Test/Resized/320px_Neck2-1.jpg | 3 + ...0px_228406_276791782435436_815038966_n.jpg | 3 + .../460px_MSwanson - Wide Large - Rock 02.jpg | 3 + src/Test/Test/Resized/460px_Neck2-1.jpg | 3 + src/Test/Test/Test.csproj | 3 + src/Test/Test/Views/Home/Upload.cshtml | 5 + src/Test/Test/Web.config | 160 +++++++++--------- 23 files changed, 231 insertions(+), 104 deletions(-) create mode 100644 src/Nuget/ImageProcessor.1.5.0.0.nupkg create mode 100644 src/Nuget/ImageProcessor.Web.2.1.2.0.nupkg.REMOVED.git-id create mode 100644 src/Test/Test/Resized/240px_228406_276791782435436_815038966_n.jpg create mode 100644 src/Test/Test/Resized/240px_MSwanson - Wide Large - Rock 02.jpg create mode 100644 src/Test/Test/Resized/240px_Neck2-1.jpg create mode 100644 src/Test/Test/Resized/320px_228406_276791782435436_815038966_n.jpg create mode 100644 src/Test/Test/Resized/320px_MSwanson - Wide Large - Rock 02.jpg create mode 100644 src/Test/Test/Resized/320px_Neck2-1.jpg create mode 100644 src/Test/Test/Resized/460px_228406_276791782435436_815038966_n.jpg create mode 100644 src/Test/Test/Resized/460px_MSwanson - Wide Large - Rock 02.jpg create mode 100644 src/Test/Test/Resized/460px_Neck2-1.jpg create mode 100644 src/Test/Test/Views/Home/Upload.cshtml diff --git a/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs b/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs index 938f3cf158..c9d2da4629 100644 --- a/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs +++ b/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs @@ -132,11 +132,7 @@ namespace ImageProcessor.Tests public void TestRotateRegex() { const string Querystring = "rotate=270"; - RotateLayer expected = new RotateLayer - { - Angle = 270, - BackgroundColor = Color.Transparent - }; + RotateLayer expected = new RotateLayer(270, Color.Transparent); Rotate rotate = new Rotate(); rotate.MatchRegexIndex(Querystring); diff --git a/src/ImageProcessor.Web/Caching/DiskCache.cs b/src/ImageProcessor.Web/Caching/DiskCache.cs index 5ad38d0514..33d48d19ff 100644 --- a/src/ImageProcessor.Web/Caching/DiskCache.cs +++ b/src/ImageProcessor.Web/Caching/DiskCache.cs @@ -304,7 +304,7 @@ namespace ImageProcessor.Web.Caching /// internal async Task SetCachedLastWriteTimeAsync() { - // Create Action delegate for IsNewOrUpdatedFile. + // Create Action delegate for SetCachedLastWriteTime. return await TaskHelpers.Run(() => this.SetCachedLastWriteTime()); } diff --git a/src/ImageProcessor.Web/Properties/AssemblyInfo.cs b/src/ImageProcessor.Web/Properties/AssemblyInfo.cs index 17f097b7cd..5d2325f207 100644 --- a/src/ImageProcessor.Web/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor.Web/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.1.1.0")] -[assembly: AssemblyFileVersion("2.1.1.0")] +[assembly: AssemblyVersion("2.1.2.0")] +[assembly: AssemblyFileVersion("2.1.2.0")] diff --git a/src/ImageProcessor/ImageFactory.cs b/src/ImageProcessor/ImageFactory.cs index ea9891d8bd..b9f710a558 100644 --- a/src/ImageProcessor/ImageFactory.cs +++ b/src/ImageProcessor/ImageFactory.cs @@ -184,7 +184,7 @@ namespace ImageProcessor } /// - /// Resets the ImageFactory to its original loaded state. + /// Resets the current image to its original loaded state. /// /// /// The current instance of the class. @@ -213,7 +213,6 @@ namespace ImageProcessor return this; } - #region Manipulation /// /// Adds a query-string to the image factory to allow auto-processing of remote files. @@ -317,7 +316,7 @@ namespace ImageProcessor } /// - /// Crops an image to the given coordinates. + /// Crops the current image to the given location and size. /// /// /// The containing the coordinates to crop the image to. @@ -338,7 +337,7 @@ namespace ImageProcessor } /// - /// Applies a filter to an image. + /// Applies a filter to the current image. /// /// /// The name of the filter to add to the image. @@ -359,7 +358,7 @@ namespace ImageProcessor } /// - /// Flips an image either horizontally or vertically. + /// Flips the current image either horizontally or vertically. /// /// /// Whether to flip the image vertically. @@ -384,7 +383,7 @@ namespace ImageProcessor } /// - /// Sets the output format of the image to the matching . + /// Sets the output format of the current image to the matching . /// /// The . to set the image to. /// @@ -401,7 +400,10 @@ namespace ImageProcessor } /// - /// Applies a filter to an image. + /// Alters the output quality of the current image. + /// + /// This method will only effect the output quality of jpeg images + /// /// /// A value between 1 and 100 to set the quality to. /// @@ -418,7 +420,7 @@ namespace ImageProcessor } /// - /// Resizes an image to the given dimensions. + /// Resizes the current image to the given dimensions. /// /// /// The containing the width and height to set the image to. @@ -517,7 +519,7 @@ namespace ImageProcessor } /// - /// Adds a text based watermark to the image + /// Adds a text based watermark to the current image. /// /// /// The containing the properties necessary to add diff --git a/src/ImageProcessor/Imaging/RotateLayer.cs b/src/ImageProcessor/Imaging/RotateLayer.cs index cdf5d75a1e..bce5ff1fca 100644 --- a/src/ImageProcessor/Imaging/RotateLayer.cs +++ b/src/ImageProcessor/Imaging/RotateLayer.cs @@ -26,6 +26,34 @@ namespace ImageProcessor.Imaging { this.BackgroundColor = Color.Transparent; } + + /// + /// Initializes a new instance of the class. + /// + /// + /// The angle at which to rotate the image. + /// + public RotateLayer(int angle) + { + this.Angle = angle; + this.BackgroundColor = Color.Transparent; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// The angle at which to rotate the image. + /// + /// + /// The to set as the background color. + /// Used for image formats that do not support transparency + /// + public RotateLayer(int angle, Color backgroundColor) + { + this.Angle = angle; + this.BackgroundColor = backgroundColor; + } #endregion #region Properties diff --git a/src/ImageProcessor/Imaging/TextLayer.cs b/src/ImageProcessor/Imaging/TextLayer.cs index a98df299e8..df367eaa3a 100644 --- a/src/ImageProcessor/Imaging/TextLayer.cs +++ b/src/ImageProcessor/Imaging/TextLayer.cs @@ -14,7 +14,7 @@ namespace ImageProcessor.Imaging #endregion /// - /// Enacapsulates the properties required to add a layer of text to an image. + /// Encapsulates the properties required to add a layer of text to an image. /// public class TextLayer { diff --git a/src/ImageProcessor/Processors/Rotate.cs b/src/ImageProcessor/Processors/Rotate.cs index 480085aa51..831250700d 100644 --- a/src/ImageProcessor/Processors/Rotate.cs +++ b/src/ImageProcessor/Processors/Rotate.cs @@ -100,21 +100,20 @@ namespace ImageProcessor.Processors // Set the index on the first instance only. this.SortOrder = match.Index; - RotateLayer rotateLayer = new RotateLayer(); + RotateLayer rotateLayer; string toParse = match.Value; if (toParse.Contains("bgcolor")) { - rotateLayer.Angle = this.ParseAngle(toParse); - rotateLayer.BackgroundColor = this.ParseColor(toParse); + rotateLayer = new RotateLayer(this.ParseAngle(toParse), this.ParseColor(toParse)); } else { int degrees; int.TryParse(match.Value.Split('=')[1], out degrees); - rotateLayer.Angle = degrees; + rotateLayer = new RotateLayer(degrees); } this.DynamicParameter = rotateLayer; diff --git a/src/ImageProcessor/Properties/AssemblyInfo.cs b/src/ImageProcessor/Properties/AssemblyInfo.cs index a5f50e13df..c921411c06 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.4.2.0")] -[assembly: AssemblyFileVersion("1.4.2.0")] +[assembly: AssemblyVersion("1.5.0.0")] +[assembly: AssemblyFileVersion("1.5.0.0")] diff --git a/src/Nuget/ImageProcessor.1.5.0.0.nupkg b/src/Nuget/ImageProcessor.1.5.0.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..ef69659f558c61533fbad7d8ab051e2b0f7b939f GIT binary patch literal 26820 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 images = new List(); diff --git a/src/Test/Test/Resized/240px_228406_276791782435436_815038966_n.jpg b/src/Test/Test/Resized/240px_228406_276791782435436_815038966_n.jpg new file mode 100644 index 0000000000..86e525e3f7 --- /dev/null +++ b/src/Test/Test/Resized/240px_228406_276791782435436_815038966_n.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea75dd804dbc2685d2189f9e5fba063427416cc3c024f9962ab10b8efc1471b0 +size 17302 diff --git a/src/Test/Test/Resized/240px_MSwanson - Wide Large - Rock 02.jpg b/src/Test/Test/Resized/240px_MSwanson - Wide Large - Rock 02.jpg new file mode 100644 index 0000000000..9043851f9f --- /dev/null +++ b/src/Test/Test/Resized/240px_MSwanson - Wide Large - Rock 02.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc4e1cd326a27789dfa3ad493b25611f31133f733e193e3eb5b4f8bc14429d1f +size 16510 diff --git a/src/Test/Test/Resized/240px_Neck2-1.jpg b/src/Test/Test/Resized/240px_Neck2-1.jpg new file mode 100644 index 0000000000..8471f5d252 --- /dev/null +++ b/src/Test/Test/Resized/240px_Neck2-1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2633b42dfcd1b253ae2733d854a8801bd8ed547157dbcb148c529a3f2e213298 +size 25044 diff --git a/src/Test/Test/Resized/320px_228406_276791782435436_815038966_n.jpg b/src/Test/Test/Resized/320px_228406_276791782435436_815038966_n.jpg new file mode 100644 index 0000000000..a7770e71e1 --- /dev/null +++ b/src/Test/Test/Resized/320px_228406_276791782435436_815038966_n.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38e73ab2ad96ab405755b53559490954f5eb6fb2bedffa2b619cfd5369f66998 +size 28894 diff --git a/src/Test/Test/Resized/320px_MSwanson - Wide Large - Rock 02.jpg b/src/Test/Test/Resized/320px_MSwanson - Wide Large - Rock 02.jpg new file mode 100644 index 0000000000..51c860e358 --- /dev/null +++ b/src/Test/Test/Resized/320px_MSwanson - Wide Large - Rock 02.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:319b3e4178951cabacd28dfee025f076e69e2c789d8a193236912a907083826c +size 27223 diff --git a/src/Test/Test/Resized/320px_Neck2-1.jpg b/src/Test/Test/Resized/320px_Neck2-1.jpg new file mode 100644 index 0000000000..fff5897a31 --- /dev/null +++ b/src/Test/Test/Resized/320px_Neck2-1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b203a58a268c47fce91ef419f996ef175d5a87f967ac2cc7978fb07bb7906da +size 39920 diff --git a/src/Test/Test/Resized/460px_228406_276791782435436_815038966_n.jpg b/src/Test/Test/Resized/460px_228406_276791782435436_815038966_n.jpg new file mode 100644 index 0000000000..15033ed2d0 --- /dev/null +++ b/src/Test/Test/Resized/460px_228406_276791782435436_815038966_n.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b50ba1e1003fcd44917f594081a3d4007ccbb65a2bd51e78de89c3ed413f301 +size 57565 diff --git a/src/Test/Test/Resized/460px_MSwanson - Wide Large - Rock 02.jpg b/src/Test/Test/Resized/460px_MSwanson - Wide Large - Rock 02.jpg new file mode 100644 index 0000000000..534c9f0ccf --- /dev/null +++ b/src/Test/Test/Resized/460px_MSwanson - Wide Large - Rock 02.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24861d2f61cb23d5bd2ad01740a1086a0623bbc1b4ed35f04bda24b345b5c62a +size 28858 diff --git a/src/Test/Test/Resized/460px_Neck2-1.jpg b/src/Test/Test/Resized/460px_Neck2-1.jpg new file mode 100644 index 0000000000..ac5ff0fd06 --- /dev/null +++ b/src/Test/Test/Resized/460px_Neck2-1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fca1fdc26920f19d9ee821975afd3640e25208993055e75d0118b29ba4c1f2d6 +size 41399 diff --git a/src/Test/Test/Test.csproj b/src/Test/Test/Test.csproj index b0c9b6fe67..7b2e3093ff 100644 --- a/src/Test/Test/Test.csproj +++ b/src/Test/Test/Test.csproj @@ -136,6 +136,9 @@ + + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/src/Test/Test/Views/Home/Upload.cshtml b/src/Test/Test/Views/Home/Upload.cshtml new file mode 100644 index 0000000000..cf077c2a4b --- /dev/null +++ b/src/Test/Test/Views/Home/Upload.cshtml @@ -0,0 +1,5 @@ +@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) +{ + + +} \ No newline at end of file diff --git a/src/Test/Test/Web.config b/src/Test/Test/Web.config index e7c9d334c5..f6e8b95f05 100644 --- a/src/Test/Test/Web.config +++ b/src/Test/Test/Web.config @@ -4,84 +4,84 @@ http://go.microsoft.com/fwlink/?LinkId=152368 --> - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file