diff --git a/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs b/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs index b305f540b..40f00bb63 100644 --- a/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs +++ b/src/ImageProcessor.Tests/RegularExpressionUnitTests.cs @@ -56,44 +56,24 @@ namespace ImageProcessor.Tests Assert.AreEqual(Expected, actual); } - /// - /// The contrast regex unit test. - /// - [TestMethod] - public void TestContrastRegex() - { - const string Querystring = "contrast=56"; - const int Expected = 56; - - Contrast contrast = new Contrast(); - contrast.MatchRegexIndex(Querystring); - - int actual = contrast.DynamicParameter; - - Assert.AreEqual(Expected, actual); - } - - /// - /// The constrain regex unit test. - /// - [TestMethod] - public void TestConstrainRegex() - { - const string Querystring = "constrain=100,200"; - const int ExpectedWidth = 100; - const int ExpectedHeight = 200; - - Constrain contrast = new Constrain(); - contrast.MatchRegexIndex(Querystring); - - int actualWidth = contrast.DynamicParameter.Width; - int actualHeight = contrast.DynamicParameter.Height; - - Assert.AreEqual(ExpectedWidth, actualWidth); - Assert.AreEqual(ExpectedHeight, actualHeight); - } - - /// + /// + /// The contrast regex unit test. + /// + [TestMethod] + public void TestContrastRegex() + { + const string Querystring = "contrast=56"; + const int Expected = 56; + + Contrast contrast = new Contrast(); + contrast.MatchRegexIndex(Querystring); + + int actual = contrast.DynamicParameter; + + Assert.AreEqual(Expected, actual); + } + + /// /// The rotate regex unit test. /// [TestMethod] diff --git a/src/ImageProcessor.Web/NET45/Caching/CacheIndexer.cs b/src/ImageProcessor.Web/NET45/Caching/CacheIndexer.cs index 6eb1fa088..b925c9044 100644 --- a/src/ImageProcessor.Web/NET45/Caching/CacheIndexer.cs +++ b/src/ImageProcessor.Web/NET45/Caching/CacheIndexer.cs @@ -82,7 +82,7 @@ namespace ImageProcessor.Web.Caching { // Add the CachedImage. CacheItemPolicy policy = new CacheItemPolicy(); - policy.ChangeMonitors.Add(new HostFileChangeMonitor(new List() { cachedImage.Path })); + policy.ChangeMonitors.Add(new HostFileChangeMonitor(new List { cachedImage.Path })); MemCache.AddItem(cachedImage.Key, cachedImage, policy); return cachedImage; diff --git a/src/ImageProcessor.Web/NET45/Caching/CachedImage.cs b/src/ImageProcessor.Web/NET45/Caching/CachedImage.cs index 2d54e4eb8..14e8a3811 100644 --- a/src/ImageProcessor.Web/NET45/Caching/CachedImage.cs +++ b/src/ImageProcessor.Web/NET45/Caching/CachedImage.cs @@ -1,4 +1,14 @@ -namespace ImageProcessor.Web.Caching +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright (c) James South. +// Licensed under the Apache License, Version 2.0. +// +// +// Describes a cached image +// +// -------------------------------------------------------------------------------------------------------------------- + +namespace ImageProcessor.Web.Caching { #region Using using System; @@ -7,7 +17,7 @@ /// /// Describes a cached image /// - public sealed class CachedImage + internal sealed class CachedImage { /// /// Gets or sets the key identifying the cached image. diff --git a/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs b/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs index b97332e79..9466fd9bb 100644 --- a/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor.Web/NET45/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.4.0.0")] -[assembly: AssemblyFileVersion("2.4.0.0")] +[assembly: AssemblyVersion("3.0.0.0")] +[assembly: AssemblyFileVersion("3.0.0.0")] diff --git a/src/ImageProcessor/ImageFactory.cs b/src/ImageProcessor/ImageFactory.cs index 049d289cb..e6bf4609f 100644 --- a/src/ImageProcessor/ImageFactory.cs +++ b/src/ImageProcessor/ImageFactory.cs @@ -336,14 +336,9 @@ namespace ImageProcessor { if (this.ShouldProcess) { - int width = size.Width; - int height = size.Height; - - var constrainSettings = new Dictionary { { "MaxWidth", width.ToString("G") }, { "MaxHeight", height.ToString("G") } }; - - Constrain constrain = new Constrain { DynamicParameter = new Size(width, height), Settings = constrainSettings }; + ResizeLayer layer = new ResizeLayer(size, ResizeMode.Max); - this.Image = constrain.ProcessImage(this); + return this.Resize(layer); } return this; @@ -750,7 +745,7 @@ namespace ImageProcessor { if (this.ShouldProcess) { - // Fix the colour palette of gif images. + // Fix the colour palette of gif and png8 images. this.FixIndexedPallete(); if (this.ImageFormat.Equals(ImageFormat.Jpeg)) diff --git a/src/ImageProcessor/ImageProcessor.csproj b/src/ImageProcessor/ImageProcessor.csproj index 3c5a6173c..1d62f5252 100644 --- a/src/ImageProcessor/ImageProcessor.csproj +++ b/src/ImageProcessor/ImageProcessor.csproj @@ -84,9 +84,7 @@ - - diff --git a/src/ImageProcessor/Imaging/ResizeMode.cs b/src/ImageProcessor/Imaging/ResizeMode.cs index 8e140da84..5ad648088 100644 --- a/src/ImageProcessor/Imaging/ResizeMode.cs +++ b/src/ImageProcessor/Imaging/ResizeMode.cs @@ -33,6 +33,6 @@ namespace ImageProcessor.Imaging /// /// Constrains the resized image to fit the bounds of its container. /// - Constrain + Max } } diff --git a/src/ImageProcessor/Processors/Constrain.cs b/src/ImageProcessor/Processors/Constrain.cs deleted file mode 100644 index 30d0c1084..000000000 --- a/src/ImageProcessor/Processors/Constrain.cs +++ /dev/null @@ -1,136 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright (c) James South. -// Licensed under the Apache License, Version 2.0. -// -// -// Constrains an image to the given dimensions. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace ImageProcessor.Processors -{ - #region Using - using System.Collections.Generic; - using System.Drawing; - using System.Text.RegularExpressions; - using ImageProcessor.Helpers.Extensions; - #endregion - - /// - /// Constrains an image to the given dimensions. - /// - public class Constrain : ResizeBase - { - /// - /// The regular expression to search strings for. - /// - private static readonly Regex QueryRegex = new Regex(@"constrain=\d+[,-]\d+", RegexOptions.Compiled); - - #region IGraphicsProcessor Members - /// - /// Gets the regular expression to search strings for. - /// - public override Regex RegexPattern - { - get - { - return QueryRegex; - } - } - - /// - /// Gets or sets DynamicParameter. - /// - public override dynamic DynamicParameter { get; set; } - - /// - /// Gets the order in which this processor is to be used in a chain. - /// - public override int SortOrder { get; protected set; } - - /// - /// Gets or sets any additional settings required by the processor. - /// - public override Dictionary Settings { get; set; } - - /// - /// The position in the original string where the first character of the captured substring was found. - /// - /// - /// The query string to search. - /// - /// - /// The zero-based starting position in the original string where the captured substring was found. - /// - public override int MatchRegexIndex(string queryString) - { - int index = 0; - - // Set the sort order to max to allow filtering. - this.SortOrder = int.MaxValue; - - foreach (Match match in this.RegexPattern.Matches(queryString)) - { - if (match.Success) - { - if (index == 0) - { - // Set the index on the first instance only. - this.SortOrder = match.Index; - int[] constraints = match.Value.ToPositiveIntegerArray(); - - int x = constraints[0]; - int y = constraints[1]; - - this.DynamicParameter = new Size(x, y); - } - - index += 1; - } - } - - return this.SortOrder; - } - - /// - /// Processes the image. - /// - /// - /// The the current instance of the class containing - /// the image to process. - /// - /// - /// The processed image from the current instance of the class. - /// - public override Image ProcessImage(ImageFactory factory) - { - double constrainedWidth = this.DynamicParameter.Width; - double constrainedHeight = this.DynamicParameter.Height; - - Image original = factory.Image; - double width = original.Width; - double height = original.Height; - - if (width > constrainedWidth || height > constrainedHeight) - { - double constraintRatio = constrainedHeight / constrainedWidth; - double originalRatio = height / width; - - Size newSize = originalRatio < constraintRatio - ? new Size((int)constrainedWidth, 0) - : new Size(0, (int)constrainedHeight); - - int defaultMaxWidth; - int defaultMaxHeight; - int.TryParse(this.Settings["MaxWidth"], out defaultMaxWidth); - int.TryParse(this.Settings["MaxHeight"], out defaultMaxHeight); - - return this.ResizeImage(factory, newSize.Width, newSize.Height, defaultMaxWidth, defaultMaxHeight, Color.Transparent); - } - - return factory.Image; - } - #endregion - } -} \ No newline at end of file diff --git a/src/ImageProcessor/Processors/Resize.cs b/src/ImageProcessor/Processors/Resize.cs index 6abff11a5..7fac2cc42 100644 --- a/src/ImageProcessor/Processors/Resize.cs +++ b/src/ImageProcessor/Processors/Resize.cs @@ -15,6 +15,8 @@ namespace ImageProcessor.Processors using System; using System.Collections.Generic; using System.Drawing; + using System.Drawing.Drawing2D; + using System.Drawing.Imaging; using System.Text; using System.Text.RegularExpressions; using ImageProcessor.Helpers.Extensions; @@ -25,12 +27,12 @@ namespace ImageProcessor.Processors /// /// Resizes an image to the given dimensions. /// - public class Resize : ResizeBase + public class Resize : IGraphicsProcessor { /// /// The regular expression to search strings for. /// - private static readonly Regex QueryRegex = new Regex(@"((width|height)=\d+)|(mode=(pad|stretch|crop|constrain))|(anchor=(top|bottom|left|right|center))|(bgcolor=([0-9a-fA-F]{3}){1,2})", RegexOptions.Compiled); + 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})", RegexOptions.Compiled); /// /// The regular expression to search strings for the size attribute. @@ -40,7 +42,7 @@ namespace ImageProcessor.Processors /// /// The regular expression to search strings for the mode attribute. /// - private static readonly Regex ModeRegex = new Regex(@"mode=(pad|stretch|crop|constrain)", RegexOptions.Compiled); + private static readonly Regex ModeRegex = new Regex(@"mode=(pad|stretch|crop|max)", RegexOptions.Compiled); /// /// The regular expression to search strings for the anchor attribute. @@ -56,7 +58,7 @@ namespace ImageProcessor.Processors /// /// Gets the regular expression to search strings for. /// - public override Regex RegexPattern + public Regex RegexPattern { get { @@ -67,7 +69,7 @@ namespace ImageProcessor.Processors /// /// Gets or sets DynamicParameter. /// - public override dynamic DynamicParameter + public dynamic DynamicParameter { get; set; @@ -76,16 +78,16 @@ namespace ImageProcessor.Processors /// /// Gets the order in which this processor is to be used in a chain. /// - public override int SortOrder + public int SortOrder { get; - protected set; + private set; } /// /// Gets or sets any additional settings required by the processor. /// - public override Dictionary Settings + public Dictionary Settings { get; set; @@ -100,7 +102,7 @@ namespace ImageProcessor.Processors /// /// The zero-based starting position in the original string where the captured substring was found. /// - public override int MatchRegexIndex(string queryString) + public int MatchRegexIndex(string queryString) { int index = 0; @@ -151,7 +153,7 @@ namespace ImageProcessor.Processors /// /// The processed image from the current instance of the class. /// - public override Image ProcessImage(ImageFactory factory) + public Image ProcessImage(ImageFactory factory) { int width = this.DynamicParameter.Size.Width ?? 0; int height = this.DynamicParameter.Size.Height ?? 0; @@ -164,17 +166,227 @@ namespace ImageProcessor.Processors int.TryParse(this.Settings["MaxWidth"], out defaultMaxWidth); int.TryParse(this.Settings["MaxHeight"], out defaultMaxHeight); - if (mode == ResizeMode.Constrain) + return this.ResizeImage(factory, width, height, defaultMaxWidth, defaultMaxHeight, backgroundColor, mode, anchor); + } + #endregion + + /// + /// The resize image. + /// + /// + /// The the current instance of the class containing + /// the image to process. + /// + /// + /// The width to resize the image to. + /// + /// + /// The height to resize the image to. + /// + /// + /// The default max width to resize the image to. + /// + /// + /// The default max height to resize the image to. + /// + /// + /// The background color to pad the image with. + /// + /// + /// The mode with which to resize the image. + /// + /// + /// The anchor position to place the image at. + /// + /// + /// The processed image from the current instance of the class. + /// + private Image ResizeImage( + ImageFactory factory, + int width, + int height, + int defaultMaxWidth, + int defaultMaxHeight, + Color backgroundColor, + ResizeMode resizeMode = ResizeMode.Pad, + AnchorPosition anchorPosition = AnchorPosition.Center) + { + Bitmap newImage = null; + Image image = factory.Image; + + try { - // Just use the old constrain plugin to handle the resize. - var constrainSettings = new Dictionary { { "MaxWidth", defaultMaxWidth.ToString("G") }, { "MaxHeight", defaultMaxHeight.ToString("G") } }; - Constrain constrain = new Constrain { DynamicParameter = new Size(width, height), Settings = constrainSettings }; - return constrain.ProcessImage(factory); + int sourceWidth = image.Width; + int sourceHeight = image.Height; + + int destinationWidth = width; + int destinationHeight = height; + + int maxWidth = defaultMaxWidth > 0 ? defaultMaxWidth : int.MaxValue; + int maxHeight = defaultMaxHeight > 0 ? defaultMaxHeight : int.MaxValue; + + // Fractional variants for preserving aspect ratio. + double percentHeight = Math.Abs(height / (double)sourceHeight); + double percentWidth = Math.Abs(width / (double)sourceWidth); + + int destinationX = 0; + int destinationY = 0; + + // Change the destination rectangle coordinates if padding and + // there has been a set width and height. + if (resizeMode == ResizeMode.Pad && width > 0 && height > 0) + { + double ratio; + + if (percentHeight < percentWidth) + { + ratio = percentHeight; + destinationX = (int)((width - (sourceWidth * ratio)) / 2); + destinationWidth = (int)Math.Floor(sourceWidth * percentHeight); + } + else + { + ratio = percentWidth; + destinationY = (int)((height - (sourceHeight * ratio)) / 2); + destinationHeight = (int)Math.Floor(sourceHeight * percentWidth); + } + } + + // Change the destination rectangle coordinates if cropping and + // there has been a set width and height. + if (resizeMode == ResizeMode.Crop && width > 0 && height > 0) + { + double ratio; + + if (percentHeight < percentWidth) + { + ratio = percentWidth; + + switch (anchorPosition) + { + case AnchorPosition.Top: + destinationY = 0; + break; + case AnchorPosition.Bottom: + destinationY = (int)(height - (sourceHeight * ratio)); + break; + default: + destinationY = (int)((height - (sourceHeight * ratio)) / 2); + break; + } + + destinationHeight = (int)Math.Floor(sourceHeight * percentWidth); + } + else + { + ratio = percentHeight; + + switch (anchorPosition) + { + case AnchorPosition.Left: + destinationX = 0; + break; + case AnchorPosition.Right: + destinationX = (int)(width - (sourceWidth * ratio)); + break; + default: + destinationX = (int)((width - (sourceWidth * ratio)) / 2); + break; + } + + destinationWidth = (int)Math.Floor(sourceWidth * percentHeight); + } + } + + // Constrain the image to fit the maximum possible height or width. + if (resizeMode == ResizeMode.Max) + { + if (sourceWidth > width || sourceHeight > height) + { + double ratio = Math.Abs(height / width); + double sourceRatio = Math.Abs(sourceHeight / sourceWidth); + + if (sourceRatio < ratio) + { + height = 0; + } + else + { + width = 0; + } + } + } + + // If height or width is not passed we assume that the standard ratio is to be kept. + if (height == 0) + { + destinationHeight = (int)Math.Floor(sourceHeight * percentWidth); + height = destinationHeight; + } + + if (width == 0) + { + destinationWidth = (int)Math.Floor(sourceWidth * percentHeight); + width = destinationWidth; + } + + if (width > 0 && height > 0 && width <= maxWidth && height <= maxHeight) + { + // Don't use an object initializer here. + // ReSharper disable once UseObjectOrCollectionInitializer + newImage = new Bitmap(width, height, PixelFormat.Format32bppPArgb); + newImage.Tag = image.Tag; + + using (Graphics graphics = Graphics.FromImage(newImage)) + { + // We want to use two different blending algorithms for enlargement/shrinking. + // Bicubic is better enlarging for whilst Bilinear is better for shrinking. + // http://www.codinghorror.com/blog/2007/07/better-image-resizing.html + if (image.Width < destinationWidth && image.Height < destinationHeight) + { + // We are making it larger. + graphics.SmoothingMode = SmoothingMode.AntiAlias; + graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; + graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + graphics.CompositingQuality = CompositingQuality.HighQuality; + } + else + { + // We are making it smaller. + graphics.SmoothingMode = SmoothingMode.None; + graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; + graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + graphics.CompositingQuality = CompositingQuality.HighQuality; + } + + // An unwanted border appears when using InterpolationMode.HighQualityBicubic to resize the image + // as the algorithm appears to be pulling averaging detail from surFlooring pixels beyond the edge + // of the image. Using the ImageAttributes class to specify that the pixels beyond are simply mirror + // images of the pixels within solves this problem. + using (ImageAttributes wrapMode = new ImageAttributes()) + { + wrapMode.SetWrapMode(WrapMode.TileFlipXY); + graphics.Clear(backgroundColor); + Rectangle destRect = new Rectangle(destinationX, destinationY, destinationWidth, destinationHeight); + graphics.DrawImage(image, destRect, 0, 0, sourceWidth, sourceHeight, GraphicsUnit.Pixel, wrapMode); + } + + // Reassign the image. + image.Dispose(); + image = newImage; + } + } + } + catch + { + if (newImage != null) + { + newImage.Dispose(); + } } - return this.ResizeImage(factory, width, height, defaultMaxWidth, defaultMaxHeight, backgroundColor, mode, anchor); + return image; } - #endregion /// /// Returns the correct for the given string. @@ -247,8 +459,8 @@ namespace ImageProcessor.Processors return ResizeMode.Stretch; case "crop": return ResizeMode.Crop; - case "constrain": - return ResizeMode.Constrain; + case "max": + return ResizeMode.Max; default: return ResizeMode.Pad; } diff --git a/src/ImageProcessor/Processors/ResizeBase.cs b/src/ImageProcessor/Processors/ResizeBase.cs deleted file mode 100644 index 6868cb492..000000000 --- a/src/ImageProcessor/Processors/ResizeBase.cs +++ /dev/null @@ -1,274 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// Copyright (c) James South. -// Licensed under the Apache License, Version 2.0. -// -// -// The resize base for inheriting resizable methods from. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace ImageProcessor.Processors -{ - #region Using - using System; - using System.Collections.Generic; - using System.Drawing; - using System.Drawing.Drawing2D; - using System.Drawing.Imaging; - using System.Text.RegularExpressions; - - using ImageProcessor.Imaging; - - #endregion - - /// - /// The resize base for inheriting resizable methods from. - /// - public abstract class ResizeBase : IGraphicsProcessor - { - #region IGraphicsProcessor Members - /// - /// Gets the regular expression to search strings for. - /// - public abstract Regex RegexPattern { get; } - - /// - /// Gets or sets DynamicParameter. - /// - public abstract dynamic DynamicParameter { get; set; } - - /// - /// Gets or sets the order in which this processor is to be used in a chain. - /// - public abstract int SortOrder { get; protected set; } - - /// - /// Gets or sets any additional settings required by the processor. - /// - public abstract Dictionary Settings { get; set; } - - /// - /// The position in the original string where the first character of the captured substring was found. - /// - /// - /// The query string to search. - /// - /// - /// The zero-based starting position in the original string where the captured substring was found. - /// - public abstract int MatchRegexIndex(string queryString); - - /// - /// Processes the image. - /// - /// - /// The the current instance of the class containing - /// the image to process. - /// - /// - /// The processed image from the current instance of the class. - /// - public abstract Image ProcessImage(ImageFactory factory); - - /// - /// The resize image. - /// - /// - /// The the current instance of the class containing - /// the image to process. - /// - /// - /// The width to resize the image to. - /// - /// - /// The height to resize the image to. - /// - /// - /// The default max width to resize the image to. - /// - /// - /// The default max height to resize the image to. - /// - /// - /// The background color to pad the image with. - /// - /// - /// The mode with which to resize the image. - /// - /// - /// The anchor position to place the image at. - /// - /// - /// The processed image from the current instance of the class. - /// - protected Image ResizeImage( - ImageFactory factory, - int width, - int height, - int defaultMaxWidth, - int defaultMaxHeight, - Color backgroundColor, - ResizeMode resizeMode = ResizeMode.Pad, - AnchorPosition anchorPosition = AnchorPosition.Center) - { - Bitmap newImage = null; - Image image = factory.Image; - - try - { - int sourceWidth = image.Width; - int sourceHeight = image.Height; - - int destinationWidth = width; - int destinationHeight = height; - - int maxWidth = defaultMaxWidth > 0 ? defaultMaxWidth : int.MaxValue; - int maxHeight = defaultMaxHeight > 0 ? defaultMaxHeight : int.MaxValue; - - // Fractional variants for preserving aspect ratio. - double percentHeight = Math.Abs(height / (double)sourceHeight); - double percentWidth = Math.Abs(width / (double)sourceWidth); - - int destinationX = 0; - int destinationY = 0; - - // Change the destination rectangle coordinates if padding and - // there has been a set width and height. - if (resizeMode == ResizeMode.Pad && width > 0 && height > 0) - { - double ratio; - - if (percentHeight < percentWidth) - { - ratio = percentHeight; - destinationX = (int)((width - (sourceWidth * ratio)) / 2); - destinationWidth = (int)Math.Floor(sourceWidth * percentHeight); - } - else - { - ratio = percentWidth; - destinationY = (int)((height - (sourceHeight * ratio)) / 2); - destinationHeight = (int)Math.Floor(sourceHeight * percentWidth); - } - } - - // Change the destination rectangle coordinates if cropping and - // there has been a set width and height. - if (resizeMode == ResizeMode.Crop && width > 0 && height > 0) - { - double ratio; - - if (percentHeight < percentWidth) - { - ratio = percentWidth; - - switch (anchorPosition) - { - case AnchorPosition.Top: - destinationY = 0; - break; - case AnchorPosition.Bottom: - destinationY = (int)(height - (sourceHeight * ratio)); - break; - default: - destinationY = (int)((height - (sourceHeight * ratio)) / 2); - break; - } - - destinationHeight = (int)Math.Floor(sourceHeight * percentWidth); - } - else - { - ratio = percentHeight; - - switch (anchorPosition) - { - case AnchorPosition.Left: - destinationX = 0; - break; - case AnchorPosition.Right: - destinationX = (int)(width - (sourceWidth * ratio)); - break; - default: - destinationX = (int)((width - (sourceWidth * ratio)) / 2); - break; - } - - destinationWidth = (int)Math.Floor(sourceWidth * percentHeight); - } - } - - // If height or width is not passed we assume that the standard ratio is to be kept. - if (height == 0) - { - destinationHeight = (int)Math.Floor(sourceHeight * percentWidth); - height = destinationHeight; - } - - if (width == 0) - { - destinationWidth = (int)Math.Floor(sourceWidth * percentHeight); - width = destinationWidth; - } - - if (width > 0 && height > 0 && width <= maxWidth && height <= maxHeight) - { - // Don't use an object initializer here. - // ReSharper disable once UseObjectOrCollectionInitializer - newImage = new Bitmap(width, height, PixelFormat.Format32bppPArgb); - newImage.Tag = image.Tag; - - using (Graphics graphics = Graphics.FromImage(newImage)) - { - // We want to use two different blending algorithms for enlargement/shrinking. - // Bicubic is better enlarging for whilst Bilinear is better for shrinking. - // http://www.codinghorror.com/blog/2007/07/better-image-resizing.html - if (image.Width < destinationWidth && image.Height < destinationHeight) - { - // We are making it larger. - graphics.SmoothingMode = SmoothingMode.AntiAlias; - graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; - graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - graphics.CompositingQuality = CompositingQuality.HighQuality; - } - else - { - // We are making it smaller. - graphics.SmoothingMode = SmoothingMode.None; - graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; - graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - graphics.CompositingQuality = CompositingQuality.HighQuality; - } - - // An unwanted border appears when using InterpolationMode.HighQualityBicubic to resize the image - // as the algorithm appears to be pulling averaging detail from surFlooring pixels beyond the edge - // of the image. Using the ImageAttributes class to specify that the pixels beyond are simply mirror - // images of the pixels within solves this problem. - using (ImageAttributes wrapMode = new ImageAttributes()) - { - wrapMode.SetWrapMode(WrapMode.TileFlipXY); - graphics.Clear(backgroundColor); - Rectangle destRect = new Rectangle(destinationX, destinationY, destinationWidth, destinationHeight); - graphics.DrawImage(image, destRect, 0, 0, sourceWidth, sourceHeight, GraphicsUnit.Pixel, wrapMode); - } - - // Reassign the image. - image.Dispose(); - image = newImage; - } - } - } - catch - { - if (newImage != null) - { - newImage.Dispose(); - } - } - - return image; - } - #endregion - } -} \ No newline at end of file diff --git a/src/TestWebsites/NET4/Content/responsive-legacy.min.css b/src/TestWebsites/NET4/Content/responsive-legacy.min.css deleted file mode 100644 index 6b7f9db22..000000000 --- a/src/TestWebsites/NET4/Content/responsive-legacy.min.css +++ /dev/null @@ -1,3 +0,0 @@ -/*! Responsive v1.0.2 | Apache v2.0 License | git.io/rRNRLA */ -/*! normalize.css v2.1.2 | MIT License | git.io/normalize */ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"“" "”" "‘" "’"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.container{margin:0 auto;width:1140px}.row:before,.row:after{content:"";display:table}.row:after{clear:both}.row [class*="column-"]{display:block;min-height:1px;float:left;position:relative}.row [class*="column-"]+[class*="column-"]{margin-left:2%}.column-12{width:100%}.column-11{width:91.5%}.column-10{width:83%}.column-9{width:74.5%}.column-8{width:66%}.column-7{width:57.5%}.column-6{width:49%}.column-5{width:40.5%}.column-4{width:32%}.column-3{width:23.5%}.column-2{width:15%}.column-1{width:6.5%}.no-gutter [class*="column-"]+[class*="column-"]{margin-left:0}.no-gutter .column-11{width:91.6667%}.no-gutter .column-10{width:83.3333%}.no-gutter .column-9{width:75%}.no-gutter .column-8{width:66.6667%}.no-gutter .column-7{width:58.3333%}.no-gutter .column-6{width:50%}.no-gutter .column-5{width:41.6667%}.no-gutter .column-4{width:33.3333%}.no-gutter .column-3{width:25%}.no-gutter .column-2{width:16.6667%}.no-gutter .column-1{width:8.3333%}.push-11{left:93.5%}.push-10{left:85%}.push-9{left:76.5%}.push-8{left:68%}.push-7{left:59.5%}.push-6{left:51%}.push-5{left:42.5%}.push-4{left:34%}.push-3{left:25.5%}.push-2{left:17%}.push-1{left:8.5%}.no-gutter .push-11{left:91.6667%}.no-gutter .push-10{left:83.3333%}.no-gutter .push-9{left:75%}.no-gutter .push-8{left:66.6667%}.no-gutter .push-7{left:58.3333%}.no-gutter .push-6{left:50%}.no-gutter .push-5{left:41.6667%}.no-gutter .push-4{left:33.3333%}.no-gutter .push-3{left:25%}.no-gutter .push-2{left:16.6667%}.no-gutter .push-1{left:8.3333%}*,*:before,*:after{-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;-ms-box-sizing:border-box!important;box-sizing:border-box!important}html{-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{color:#222}body{font-size:16px;line-height:1.4}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{text-rendering:optimizeLegibility;display:block;font-weight:bold;page-break-after:avoid}.h1{font-size:2em;margin:.67em 0}.h2{font-size:1.5em;margin:.83em 0}.h3{font-size:1.17em;margin:1em 0}.h4{font-size:1em;margin:1.33em 0}.h5{font-size:.83em;margin:1.67em 0}.h6{font-size:.67em;margin:2.33em 0}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid silver;margin:1em 0;padding:0}abbr{cursor:help}ul,ol{margin:1em 0;padding-left:2.5em}ul ul,ol ol{margin:0}ul.no-bullets,ol.no-bullets{padding-left:0}ul.no-bullets>li,ol.no-bullets>li{list-style:none}ul.colored,ol.colored{padding-left:40px}ul.colored>li,ol.colored>li{list-style-type:none;position:relative}ul.colored>li:before,ol.colored>li:before{content:"●";color:#00a9ec;font-weight:bold;font-size:1em;text-align:right;position:absolute;left:-1em;top:0;text-decoration:none;-webkit-margin-start:-.25em}ol.colored{counter-reset:foo}ol.colored>li{counter-increment:foo}ol.colored>li:before{content:counter(foo)".";left:-3.125em;font-weight:normal;width:2.5em;-webkit-margin-start:0}dt,dd{min-height:1.4em}.dl-horizontal>dt{float:left;clear:left;width:150px;overflow:hidden;text-align:right;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal>dd{margin-left:166px}table{max-width:100%;width:100%;margin:1em 0}table th,table td{padding:.5em;text-align:left;vertical-align:top}.table-bordered{border-collapse:separate;border:solid 1px silver;border-left-width:0}.table-bordered th,.table-bordered td{border-top:1px solid silver;border-left:1px solid silver}.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top-width:0}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th,.table-row-alt>td,.table-row-alt>th{background-color:#e7e7e7}.alert{background-color:#fcf8e3;border:1px solid #f2e187;color:#9c8611;margin-bottom:1em;padding:0 2.17em 0 1em}.alert:before,.alert:after{content:"";display:table}.alert:after{clear:both}.alert-heading{color:inherit}.alert .close{color:inherit;float:right;font-size:1.17em;font-weight:bold;line-height:1em;position:relative;right:-1.17em;text-decoration:none;top:.33em}.alert .close:hover{text-decoration:underline}.alert-success{background-color:#c5e6c5;border:1px solid #a2d6a2;color:#347834}.alert-warning{background-color:#fee7c7;border:1px solid #fcd296;color:#c17305}.alert-error{background-color:#f4cac8;border:1px solid #eba19e;color:#da4f49}.alert-info{background-color:#d9edf7;border:1px solid #85c5e5;color:#247fad}img{max-width:100%;vertical-align:middle}a img{border:none}.media{position:relative;padding-top:1.5625em;padding-bottom:67.5%;height:0;margin-bottom:1em;overflow:hidden}.media.widescreen{padding-bottom:57.25%}.media.vimeo{padding-top:0}.media iframe,.media object,.media embed,.media video{position:absolute;top:0;left:0;width:100%;height:100%}.form{margin:1em 0}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;font-size:1.17em;margin-bottom:1em}label[for]{cursor:pointer}select,textarea,input{border-radius:0}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],input[type="range"],input[type="checkbox"],.no-edit{font-family:inherit;padding:.25em;background-color:#fff;border:1px solid silver}@media screen and (-webkit-min-device-pixel-ratio:0)and (max-device-width:1024px)and (orientation:landscape),screen and (-webkit-min-device-pixel-ratio:0)and (max-device-width:1024px)and (orientation:portrait){select,input[type="search"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="week"],input[type="month"],input[type="time"]{-webkit-appearance:none}select,input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"]{background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-position:right center}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){input[type="range"]{border:none;padding:.25em 0}}x:-o-prefocus,input[type="range"]{border:none;padding:.25em 0}form label,form input,form textarea,form select,form .no-edit,.input-tamer{display:block;margin-bottom:1em}input[type="text"],input[type="file"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],input[type="range"],textarea,.no-edit{max-width:210px;width:100%}input[type="color"]{-webkit-padding-start:0;-webkit-padding-end:0;-webkit-padding-before:0;-webkit-padding-after:0;max-width:105px}input[type="radio"],input[type="checkbox"]{padding:0;display:block;margin:3px 3px 3px 0!important;width:auto;max-width:15px}textarea{width:auto;min-width:210px;max-width:100%;height:auto;resize:both;min-height:84px}textarea.horizontal{resize:horizontal}textarea.vertical{resize:vertical}textarea.no-resize{resize:none}.no-edit{cursor:not-allowed;border-color:#ebebeb}select{max-width:210px;width:100%;border:1px solid silver}select option{height:100%}.full-width{max-width:100%!important;width:100%!important}::-webkit-input-placeholder{color:silver}:-moz-placeholder{color:silver}::-moz-placeholder{color:silver}:-ms-input-placeholder{color:silver}textarea:focus,input[type="text"]:focus,input[type="file"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,input[type="range"]:focus,select:focus,select.focus,input.focus,textarea.focus,.no-edit:focus{border-color:#00a9ec;outline:0}input[type="checkbox"]:focus,input[type="checkbox"].focus,input[type="checkbox"]:checked,input[type="checkbox"].checked,input[type="radio"]:focus,input[type="radio"].focus,input[type="radio"]:checked,input[type="radio"].checked{outline:1px solid #00a9ec}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed!important;background-color:#ebebeb;border-color:silver;color:silver;outline:0!important}.form-actions{margin:1em 0;padding:1em 0}.form-horizontal label{float:left;clear:left;width:160px;overflow:hidden;text-align:right;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1}.form-horizontal input,.form-horizontal input[type="text"],.form-horizontal input[type="password"],.form-horizontal input[type="datetime"],.form-horizontal input[type="datetime-local"],.form-horizontal input[type="date"],.form-horizontal input[type="month"],.form-horizontal input[type="time"],.form-horizontal input[type="week"],.form-horizontal input[type="number"],.form-horizontal input[type="email"],.form-horizontal input[type="url"],.form-horizontal input[type="search"],.form-horizontal input[type="tel"],.form-horizontal input[type="color"],.form-horizontal select,.form-horizontal textarea,.form-horizontal .no-edit-input,.form-horizontal .input-tamer,.form-horizontal fieldset>p,.form-horizontal fieldset>span{margin-left:176px;margin-bottom:1em}.form-horizontal .form-actions{padding-left:176px}button,input[type="submit"],.btn{display:inline-block;text-decoration:none;padding:.5em 1em;margin-bottom:0;line-height:normal;font-size:1em;color:#222;cursor:pointer;position:relative;-webkit-appearance:none;border-radius:0}button.disabled,button[disabled],input[type="submit"].disabled,input[type="submit"][disabled],.btn.disabled{cursor:not-allowed}.btn{border:solid 1px silver;background-color:#dadada}.btn:hover,.btn.hover,.btn:active,.btn.active,.btn:focus,.btn.focus,.btn[disabled],.btn.disabled{background-color:#cdcdcd}.btn:focus,.btn.focus{border:1px solid #00a9ec;outline:0}.btn:active,.btn.active{background-color:#e7e7e7;border-color:silver;outline:none}.btn.disabled,.btn[disabled]{color:#5d5d5d;background-color:#e7e7e7}button.btn-inline,input[type="submit"].btn-inline,.btn-inline{margin-left:-5px;padding:.25em 1em}input[type="submit"].btn.btn-inline,.btn.btn-inline{margin-left:-4px}.btn-group:before,.btn-group:after{content:"";display:table}.btn-group:after{clear:both}.btn-group{position:relative;display:inline-block;white-space:nowrap;vertical-align:middle}.btn-group>.btn{float:left}pre,code,samp,kbd{background-color:#f7f7f9;border:1px solid silver;color:#ad0d36;padding:.13em .25em}code,samp,kbd{padding:.067em .25em}kbd{white-space:nowrap}pre code,pre samp{border:none;padding:0}pre code{white-space:pre-wrap}.pre-scrollable{max-height:20em;overflow-y:scroll}.accordion{border:solid 1px silver;margin-bottom:.125em}.accordion-head{display:block;padding:.5em;cursor:pointer;border-bottom:solid 1px silver}.accordion-head a{outline:none}.accordion-body{padding:0 .5em}.accordion-body.collapse{margin-top:-1px}.expand,.collapse{position:relative;display:block;height:auto;width:auto;overflow:hidden;margin-top:0;-moz-transition:height .5s ease,width .5s ease;-o-transition:height .5s ease,width .5s ease;-webkit-transition:height .5s ease,width .5s ease;transition:height .5s ease,width .5s ease}.collapse{height:0}.collapse.width{height:auto;width:0}.autosize,[data-autosize]{overflow:hidden;-webkit-transition:border linear .3s,box-shadow linear .3s,height .3s linear;-moz-transition:border linear .3s,box-shadow linear .3s,height .3s linear;-o-transition:border linear .3s,box-shadow linear .3s,height .3s linear;transition:border linear .3s,box-shadow linear .3s,height .3s linear}.carousel{position:relative;margin-bottom:1em;border:1px solid silver}.carousel-inner{overflow:hidden;width:100%;position:relative}.carousel .carousel-item{display:none;position:relative;-webkit-transition:.7s ease-in-out left;-moz-transition:.7s ease-in-out left;-o-transition:.7s ease-in-out left;transition:.7s ease-in-out left}.carousel .carousel-item>img{display:block;width:100%}.carousel .carousel-active,.carousel .next,.carousel .prev{display:block}.carousel .carousel-active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .carousel-active.left{left:-100%}.carousel .carousel-active.right{left:100%}.carousel-control,.carousel-control:visited{position:absolute;top:40%;left:1em;padding:.5em;margin-top:-1em;font-size:1em;font-weight:bold;text-align:center;background-color:#fff;border:1px solid #222;color:inherit;text-decoration:none}.carousel-control.right{left:auto;right:1em}.carousel-control,.carousel-control:visited,.carousel-control:focus{outline:0}.carousel-control:hover{text-decoration:underline}.carousel-caption{padding:0 1em;background:#fff}.carousel-fade .carousel-item,.carousel[data-carousel-mode="fade"] .carousel-item{-webkit-transition:opacity 1.4s ease-in-out;-moz-transition:opacity 1.4s ease-in-out;-o-transition:opacity 1.4s ease-in-out;transition:opacity 1.4s ease-in-out;position:absolute;top:0;right:0;bottom:0;left:0;-moz-opacity:0;opacity:0}.carousel-fade .carousel-active,.carousel[data-carousel-mode="fade"] .carousel-active{-moz-opacity:1;opacity:1}.carousel-fade .carousel-active.left,.carousel-fade .carousel-active.right,.carousel[data-carousel-mode="fade"] .carousel-active.left,.carousel[data-carousel-mode="fade"] .carousel-active.right{left:0;-moz-opacity:0;opacity:0;z-index:2}.carousel-fade .carousel-item.next,.carousel-fade .carousel-item.prev,.carousel[data-carousel-mode="fade"] .carousel-item.next,.carousel[data-carousel-mode="fade"] .carousel-item.prev{left:0;z-index:1;-moz-opacity:1;opacity:1}.carousel-fade .carousel-item.carousel-active,.carousel[data-carousel-mode="fade"] .carousel-item.carousel-active{position:relative;width:100%;height:100%}.carousel[data-carousel-mode="fade"] .carousel-control,.carousel-fade .carousel-control:visited{z-index:3}[data-tabs] ul.tabs{list-style:none;border-bottom:1px solid silver;padding:0;margin-top:0}[data-tabs] ul.tabs:before,[data-tabs] ul.tabs:after{content:"";display:table}[data-tabs] ul.tabs:after{clear:both}[data-tabs] ul.tabs>li{float:left;margin-bottom:-1px}[data-tabs] ul.tabs>li>a{text-decoration:none;display:block;cursor:pointer;padding:0 1em;line-height:2em;border:1px solid transparent;margin-right:.2em;outline:none}[data-tabs] ul.tabs>li>a:hover{background:#ebebeb;border-color:silver}[data-tabs] ul.tabs>li.tab-active>a,[data-tabs] ul.tabs>li.tab-active>a:hover{color:#454545;cursor:default;background:#fff;border:1px solid silver;border-bottom-color:transparent}[data-tabs]>div{display:none}[data-tabs]>div.tab-pane-active{display:block}.lightbox-overlay{position:fixed;overflow:auto;overflow-y:scroll;z-index:2147483647;left:0;top:0;right:0;bottom:0;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkYxMDI4MzlFRkU1MTFFMjg3QUU4NzI5RTNDQTdBNzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkYxMDI4M0FFRkU1MTFFMjg3QUU4NzI5RTNDQTdBNzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCRjEwMjgzN0VGRTUxMUUyODdBRTg3MjlFM0NBN0E3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCRjEwMjgzOEVGRTUxMUUyODdBRTg3MjlFM0NBN0E3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuF8nHUAAAAPSURBVHjaYmBgYNgMEGAAALgAtNah8fUAAAAASUVORK5CYII=');text-align:center}.lightbox{position:relative;text-align:left;display:inline-block;margin:5% auto;max-width:95%;padding:1em;background:#fff;-webkit-box-shadow:0 0 10px 1px rgba(0,0,0,1);box-shadow:0 0 10px 1px rgba(0,0,0,1)}.lightbox-header{padding:0 2.17em 0 0;min-height:1.17em}.lightbox-header h1{margin-top:0;-ms-word-wrap:break-word;word-wrap:break-word}.lightbox .close{color:inherit;float:right;font-size:1.17em;font-weight:bold;line-height:1em;position:relative;right:-1.89em;text-decoration:none;top:.33em}.lightbox .close:hover{text-decoration:underline}.lightbox-content{overflow-y:auto;overflow-x:hidden}.lightbox-content>img{width:auto}.lightbox .lightbox-iframe,.lightbox .lightbox-iframe-scroll{height:400px;overflow:hidden}.lightbox .lightbox-iframe-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.lightbox iframe{padding:0;margin:0;border:0;outline:none;vertical-align:top;display:block;width:100%;min-width:600px \0;min-height:400px;height:100%;background-color:transparent}.lightbox-footer{margin-top:1em}.lightbox-direction,.lightbox-direction:visited{position:absolute;top:50%;left:-1px;padding:.5em;margin-top:-1em;font-size:1em;font-weight:bold;text-align:center;background-color:#fff;border:1px solid #222;color:inherit;text-decoration:none;z-index:1}.lightbox-direction.right{left:auto;right:-1px}.lightbox-direction,.lightbox-direction:visited,.lightbox-direction:focus{outline:0}.lightbox-direction:hover{text-decoration:underline}.ir{background-color:transparent;border:0;overflow:hidden}.ir:before{content:"";display:block;width:0;height:150%}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.push-left{float:left!important}.push-right{float:right!important}.fade-out{-moz-opacity:0!important;opacity:0!important}.block{display:block!important}.inline-block{display:inline-block!important}.inline{display:inline!important}.fade-in{-moz-opacity:1!important;opacity:1!important}.fade-out,.fade-in{-moz-transition:opacity .3s linear 0s;-o-transition:opacity .3s linear 0s;-webkit-transition:opacity .3s linear 0s;transition:opacity .3s linear 0s}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media print{*{background:transparent!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-text-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}} \ No newline at end of file diff --git a/src/TestWebsites/NET4/Content/responsive.min.css b/src/TestWebsites/NET4/Content/responsive.min.css deleted file mode 100644 index 55988258d..000000000 --- a/src/TestWebsites/NET4/Content/responsive.min.css +++ /dev/null @@ -1,3 +0,0 @@ -/*! Responsive v1.0.2 | Apache v2.0 License | git.io/rRNRLA */ -/*! normalize.css v2.1.2 | MIT License | git.io/normalize */ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"“" "”" "‘" "’"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.container{margin:0 auto;width:95%;max-width:1140px}.fixed .container,.container.fixed{width:1140px}.row:before,.row:after{content:"";display:table}.row:after{clear:both}.row [class*="column-"]{position:relative;display:block;min-height:1px;float:left}@media screen and (max-width:767px){.container:not(.fixed) .row:not(.fixed)>[class*="column-"]{width:100%;margin-left:0;left:0}}@media screen and (max-width:1197px){.fixed .container,.container.fixed{margin-left:2.5%}}.row:not(.no-gutter)>[class*="column-"]+[class*="column-"]{margin-left:2%}.column-12{width:100%}.column-11{width:91.5%}.column-10{width:83%}.column-9{width:74.5%}.column-8{width:66%}.column-7{width:57.5%}.column-6{width:49%}.column-5{width:40.5%}.column-4{width:32%}.column-3{width:23.5%}.column-2{width:15%}.column-1{width:6.5%}.no-gutter .column-11{width:91.6667%}.no-gutter .column-10{width:83.3333%}.no-gutter .column-9{width:75%}.no-gutter .column-8{width:66.6667%}.no-gutter .column-7{width:58.3333%}.no-gutter .column-6{width:50%}.no-gutter .column-5{width:41.6667%}.no-gutter .column-4{width:33.3333%}.no-gutter .column-3{width:25%}.no-gutter .column-2{width:16.6667%}.no-gutter .column-1{width:8.3333%}.push-11{left:93.5%}.push-10{left:85%}.push-9{left:76.5%}.push-8{left:68%}.push-7{left:59.5%}.push-6{left:51%}.push-5{left:42.5%}.push-4{left:34%}.push-3{left:25.5%}.push-2{left:17%}.push-1{left:8.5%}.no-gutter .push-11{left:91.6667%}.no-gutter .push-10{left:83.3333%}.no-gutter .push-9{left:75%}.no-gutter .push-8{left:66.6667%}.no-gutter .push-7{left:58.3333%}.no-gutter .push-6{left:50%}.no-gutter .push-5{left:41.6667%}.no-gutter .push-4{left:33.3333%}.no-gutter .push-3{left:25%}.no-gutter .push-2{left:16.6667%}.no-gutter .push-1{left:8.3333%}*,*:before,*:after{-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;-ms-box-sizing:border-box!important;box-sizing:border-box!important}html{-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{color:#222}body{font-size:16px;line-height:1.4}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{text-rendering:optimizeLegibility;display:block;font-weight:bold;page-break-after:avoid}.h1{font-size:2em;margin:.67em 0}.h2{font-size:1.5em;margin:.83em 0}.h3{font-size:1.17em;margin:1em 0}.h4{font-size:1em;margin:1.33em 0}.h5{font-size:.83em;margin:1.67em 0}.h6{font-size:.67em;margin:2.33em 0}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid silver;margin:1em 0;padding:0}abbr{cursor:help}ul,ol{margin:1em 0;padding-left:2.5em}ul ul,ol ol{margin:0}ul.no-bullets,ol.no-bullets{padding-left:0}ul.no-bullets>li,ol.no-bullets>li{list-style:none}ul.colored,ol.colored{padding-left:40px}ul.colored>li,ol.colored>li{list-style-type:none;position:relative}ul.colored>li:before,ol.colored>li:before{content:"●";color:#00a9ec;font-weight:bold;font-size:1em;text-align:right;position:absolute;left:-1em;top:0;text-decoration:none;-webkit-margin-start:-.25em}ol.colored{counter-reset:foo}ol.colored>li{counter-increment:foo}ol.colored>li:before{content:counter(foo)".";left:-3.125em;font-weight:normal;width:2.5em;-webkit-margin-start:0}dt,dd{min-height:1.4em}@media screen and (min-width:768px){.dl-horizontal>dt{float:left;clear:left;width:150px;overflow:hidden;text-align:right;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal>dd{margin-left:166px}}table{max-width:100%;width:100%;margin:1em 0}table th,table td{padding:.5em;text-align:left;vertical-align:top}.table-bordered{border-collapse:separate;border:solid 1px silver;border-left-width:0}.table-bordered th,.table-bordered td{border-top:1px solid silver;border-left:1px solid silver}.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top-width:0}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th,.table-row-alt>td,.table-row-alt>th{background-color:#e7e7e7}.alert{background-color:#fcf8e3;border:1px solid #f2e187;color:#9c8611;margin-bottom:1em;padding:0 2.17em 0 1em}.alert:before,.alert:after{content:"";display:table}.alert:after{clear:both}.alert-heading{color:inherit}.alert .close{color:inherit;float:right;font-size:1.17em;font-weight:bold;line-height:1em;position:relative;right:-1.17em;text-decoration:none;top:.33em}.alert .close:hover{text-decoration:underline}.alert-success{background-color:#c5e6c5;border:1px solid #a2d6a2;color:#347834}.alert-warning{background-color:#fee7c7;border:1px solid #fcd296;color:#c17305}.alert-error{background-color:#f4cac8;border:1px solid #eba19e;color:#da4f49}.alert-info{background-color:#d9edf7;border:1px solid #85c5e5;color:#247fad}img{max-width:100%;vertical-align:middle}a img{border:none}.media{position:relative;padding-top:1.5625em;padding-bottom:67.5%;height:0;margin-bottom:1em;overflow:hidden}.media.widescreen{padding-bottom:57.25%}.media.vimeo{padding-top:0}.media iframe,.media object,.media embed,.media video{position:absolute;top:0;left:0;width:100%;height:100%}.form{margin:1em 0}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;font-size:1.17em;margin-bottom:1em}label[for]{cursor:pointer}select,textarea,input{border-radius:0}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],input[type="range"],input[type="checkbox"],.no-edit{font-family:inherit;padding:.25em;background-color:#fff;border:1px solid silver}@media screen and (-webkit-min-device-pixel-ratio:0)and (max-device-width:1024px)and (orientation:landscape),screen and (-webkit-min-device-pixel-ratio:0)and (max-device-width:1024px)and (orientation:portrait){select,input[type="search"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="week"],input[type="month"],input[type="time"]{-webkit-appearance:none}select,input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"]{background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-position:right center}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){input[type="range"]{border:none;padding:.25em 0}}x:-o-prefocus,input[type="range"]{border:none;padding:.25em 0}form label,form input,form textarea,form select,form .no-edit,.input-tamer{display:block;margin-bottom:1em}input[type="text"],input[type="file"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],input[type="range"],textarea,.no-edit{max-width:210px;width:100%}input[type="color"]{-webkit-padding-start:0;-webkit-padding-end:0;-webkit-padding-before:0;-webkit-padding-after:0;max-width:105px}input[type="radio"],input[type="checkbox"]{padding:0;display:block;margin:3px 3px 3px 0!important;width:auto;max-width:15px}textarea{width:auto;min-width:210px;max-width:100%;height:auto;resize:both;min-height:84px}textarea.horizontal{resize:horizontal}textarea.vertical{resize:vertical}textarea.no-resize{resize:none}.no-edit{cursor:not-allowed;border-color:#ebebeb}select{max-width:210px;width:100%;border:1px solid silver}select option{height:100%}.full-width{max-width:100%!important;width:100%!important}::-webkit-input-placeholder{color:silver}:-moz-placeholder{color:silver}::-moz-placeholder{color:silver}:-ms-input-placeholder{color:silver}textarea:focus,input[type="text"]:focus,input[type="file"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,input[type="range"]:focus,select:focus,select.focus,input.focus,textarea.focus,.no-edit:focus{border-color:#00a9ec;outline:0}input[type="checkbox"]:focus,input[type="checkbox"].focus,input[type="checkbox"]:checked,input[type="checkbox"].checked,input[type="radio"]:focus,input[type="radio"].focus,input[type="radio"]:checked,input[type="radio"].checked{outline:1px solid #00a9ec}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed!important;background-color:#ebebeb;border-color:silver;color:silver;outline:0!important}.form-actions{margin:1em 0;padding:1em 0}@media screen and (min-width:480px){.form-horizontal label{float:left;clear:left;width:160px;overflow:hidden;text-align:right;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1}.form-horizontal input,.form-horizontal input[type="text"],.form-horizontal input[type="password"],.form-horizontal input[type="datetime"],.form-horizontal input[type="datetime-local"],.form-horizontal input[type="date"],.form-horizontal input[type="month"],.form-horizontal input[type="time"],.form-horizontal input[type="week"],.form-horizontal input[type="number"],.form-horizontal input[type="email"],.form-horizontal input[type="url"],.form-horizontal input[type="search"],.form-horizontal input[type="tel"],.form-horizontal input[type="color"],.form-horizontal select,.form-horizontal textarea,.form-horizontal .no-edit-input,.form-horizontal .input-tamer,.form-horizontal fieldset>p,.form-horizontal fieldset>span{margin-left:176px;margin-bottom:1em}.form-horizontal .form-actions{padding-left:176px}}button,input[type="submit"],.btn{display:inline-block;text-decoration:none;padding:.5em 1em;margin-bottom:0;line-height:normal;font-size:1em;color:#222;cursor:pointer;position:relative;-webkit-appearance:none;border-radius:0}button.disabled,button[disabled],input[type="submit"].disabled,input[type="submit"][disabled],.btn.disabled{cursor:not-allowed}.btn{border:solid 1px silver;background-color:#dadada}.btn:hover,.btn.hover,.btn:active,.btn.active,.btn:focus,.btn.focus,.btn[disabled],.btn.disabled{background-color:#cdcdcd}.btn:focus,.btn.focus{border:1px solid #00a9ec;outline:0}.btn:active,.btn.active{background-color:#e7e7e7;border-color:silver;outline:none}.btn.disabled,.btn[disabled]{color:#5d5d5d;background-color:#e7e7e7}button.btn-inline,input[type="submit"].btn-inline,.btn-inline{margin-left:-5px;padding:.25em 1em}input[type="submit"].btn.btn-inline,.btn.btn-inline{margin-left:-4px}.btn-group:before,.btn-group:after{content:"";display:table}.btn-group:after{clear:both}.btn-group{position:relative;display:inline-block;white-space:nowrap;vertical-align:middle}.btn-group>.btn{float:left}pre,code,samp,kbd{background-color:#f7f7f9;border:1px solid silver;color:#ad0d36;padding:.13em .25em}code,samp,kbd{padding:.067em .25em}kbd{white-space:nowrap}pre code,pre samp{border:none;padding:0}pre code{white-space:pre-wrap}.pre-scrollable{max-height:20em;overflow-y:scroll}.accordion{border:solid 1px silver;margin-bottom:.125em}.accordion-head{display:block;padding:.5em;cursor:pointer;border-bottom:solid 1px silver}.accordion-head a{outline:none}.accordion-body{padding:0 .5em}.accordion-body.collapse{margin-top:-1px}.expand,.collapse{position:relative;display:block;height:auto;width:auto;overflow:hidden;margin-top:0;-moz-transition:height .5s ease,width .5s ease;-o-transition:height .5s ease,width .5s ease;-webkit-transition:height .5s ease,width .5s ease;transition:height .5s ease,width .5s ease}.collapse{height:0}.collapse.width{height:auto;width:0}.autosize,[data-autosize]{overflow:hidden;-webkit-transition:border linear .3s,box-shadow linear .3s,height .3s linear;-moz-transition:border linear .3s,box-shadow linear .3s,height .3s linear;-o-transition:border linear .3s,box-shadow linear .3s,height .3s linear;transition:border linear .3s,box-shadow linear .3s,height .3s linear}.carousel{position:relative;margin-bottom:1em;border:1px solid silver}.carousel-inner{overflow:hidden;width:100%;position:relative}.carousel .carousel-item{display:none;position:relative;-webkit-transition:.7s ease-in-out left;-moz-transition:.7s ease-in-out left;-o-transition:.7s ease-in-out left;transition:.7s ease-in-out left}.carousel .carousel-item>img{display:block;width:100%}.carousel .carousel-active,.carousel .next,.carousel .prev{display:block}.carousel .carousel-active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .carousel-active.left{left:-100%}.carousel .carousel-active.right{left:100%}.carousel-control,.carousel-control:visited{position:absolute;top:40%;left:1em;padding:.5em;margin-top:-1em;font-size:1em;font-weight:bold;text-align:center;background-color:#fff;border:1px solid #222;color:inherit;text-decoration:none}.carousel-control.right{left:auto;right:1em}.carousel-control,.carousel-control:visited,.carousel-control:focus{outline:0}.carousel-control:hover{text-decoration:underline}.carousel-caption{padding:0 1em;background:#fff}.carousel-fade .carousel-item,.carousel[data-carousel-mode="fade"] .carousel-item{-webkit-transition:opacity 1.4s ease-in-out;-moz-transition:opacity 1.4s ease-in-out;-o-transition:opacity 1.4s ease-in-out;transition:opacity 1.4s ease-in-out;position:absolute;top:0;right:0;bottom:0;left:0;-moz-opacity:0;opacity:0}.carousel-fade .carousel-active,.carousel[data-carousel-mode="fade"] .carousel-active{-moz-opacity:1;opacity:1}.carousel-fade .carousel-active.left,.carousel-fade .carousel-active.right,.carousel[data-carousel-mode="fade"] .carousel-active.left,.carousel[data-carousel-mode="fade"] .carousel-active.right{left:0;-moz-opacity:0;opacity:0;z-index:2}.carousel-fade .carousel-item.next,.carousel-fade .carousel-item.prev,.carousel[data-carousel-mode="fade"] .carousel-item.next,.carousel[data-carousel-mode="fade"] .carousel-item.prev{left:0;z-index:1;-moz-opacity:1;opacity:1}.carousel-fade .carousel-item.carousel-active,.carousel[data-carousel-mode="fade"] .carousel-item.carousel-active{position:relative;width:100%;height:100%}.carousel[data-carousel-mode="fade"] .carousel-control,.carousel-fade .carousel-control:visited{z-index:3}[data-tabs] ul.tabs{list-style:none;border-bottom:1px solid silver;padding:0;margin-top:0}[data-tabs] ul.tabs:before,[data-tabs] ul.tabs:after{content:"";display:table}[data-tabs] ul.tabs:after{clear:both}[data-tabs] ul.tabs>li{float:left;margin-bottom:-1px}[data-tabs] ul.tabs>li>a{text-decoration:none;display:block;cursor:pointer;padding:0 1em;line-height:2em;border:1px solid transparent;margin-right:.2em;outline:none}[data-tabs] ul.tabs>li>a:hover{background:#ebebeb;border-color:silver}[data-tabs] ul.tabs>li.tab-active>a,[data-tabs] ul.tabs>li.tab-active>a:hover{color:#454545;cursor:default;background:#fff;border:1px solid silver;border-bottom-color:transparent}[data-tabs]>div{display:none}[data-tabs]>div.tab-pane-active{display:block}.lightbox-overlay{position:fixed;overflow:auto;overflow-y:scroll;z-index:2147483647;left:0;top:0;right:0;bottom:0;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkYxMDI4MzlFRkU1MTFFMjg3QUU4NzI5RTNDQTdBNzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkYxMDI4M0FFRkU1MTFFMjg3QUU4NzI5RTNDQTdBNzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCRjEwMjgzN0VGRTUxMUUyODdBRTg3MjlFM0NBN0E3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCRjEwMjgzOEVGRTUxMUUyODdBRTg3MjlFM0NBN0E3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuF8nHUAAAAPSURBVHjaYmBgYNgMEGAAALgAtNah8fUAAAAASUVORK5CYII=');text-align:center}.lightbox{position:relative;text-align:left;display:inline-block;margin:5% auto;max-width:95%;padding:1em;background:#fff;-webkit-box-shadow:0 0 10px 1px rgba(0,0,0,1);box-shadow:0 0 10px 1px rgba(0,0,0,1)}.lightbox-header{padding:0 2.17em 0 0;min-height:1.17em}.lightbox-header h1{margin-top:0;-ms-word-wrap:break-word;word-wrap:break-word}.lightbox .close{color:inherit;float:right;font-size:1.17em;font-weight:bold;line-height:1em;position:relative;right:-1.89em;text-decoration:none;top:.33em}.lightbox .close:hover{text-decoration:underline}.lightbox-content{overflow-y:auto;overflow-x:hidden}.lightbox-content>img{width:auto}.lightbox .lightbox-iframe,.lightbox .lightbox-iframe-scroll{height:400px;overflow:hidden}.lightbox .lightbox-iframe-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.lightbox iframe{padding:0;margin:0;border:0;outline:none;vertical-align:top;display:block;width:100%;min-width:600px \0;min-height:400px;height:100%;background-color:transparent}.lightbox-footer{margin-top:1em}.lightbox-direction,.lightbox-direction:visited{position:absolute;top:50%;left:-1px;padding:.5em;margin-top:-1em;font-size:1em;font-weight:bold;text-align:center;background-color:#fff;border:1px solid #222;color:inherit;text-decoration:none;z-index:1}.lightbox-direction.right{left:auto;right:-1px}.lightbox-direction,.lightbox-direction:visited,.lightbox-direction:focus{outline:0}.lightbox-direction:hover{text-decoration:underline}@media screen and (min-width:767px){.lightbox iframe{min-width:644px}}.ir{background-color:transparent;border:0;overflow:hidden}.ir:before{content:"";display:block;width:0;height:150%}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.push-left{float:left!important}.push-right{float:right!important}.fade-out{-moz-opacity:0!important;opacity:0!important}.block{display:block!important}.inline-block{display:inline-block!important}.inline{display:inline!important}.fade-in{-moz-opacity:1!important;opacity:1!important}.fade-out,.fade-in{-moz-transition:opacity .3s linear 0s;-o-transition:opacity .3s linear 0s;-webkit-transition:opacity .3s linear 0s;transition:opacity .3s linear 0s}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media screen and (max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media screen and (min-width:768px)and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media print{*{background:transparent!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-text-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}} \ No newline at end of file diff --git a/src/TestWebsites/NET4/Content/responsive.min.css.REMOVED.git-id b/src/TestWebsites/NET4/Content/responsive.min.css.REMOVED.git-id new file mode 100644 index 000000000..bcf841f2a --- /dev/null +++ b/src/TestWebsites/NET4/Content/responsive.min.css.REMOVED.git-id @@ -0,0 +1 @@ +e0fbb23ec0c6b4a6980ac29f0c71b82ff900eebc \ No newline at end of file diff --git a/src/TestWebsites/NET4/Controllers/HomeController.cs b/src/TestWebsites/NET4/Controllers/HomeController.cs index a25143bb1..88b37915f 100644 --- a/src/TestWebsites/NET4/Controllers/HomeController.cs +++ b/src/TestWebsites/NET4/Controllers/HomeController.cs @@ -12,9 +12,39 @@ namespace Test.Controllers // GET: /Home/ public ActionResult Index() + { + return this.View(); + } + + public ActionResult Png() + { + return this.View(); + } + + public ActionResult Png8() + { + return this.View(); + } + + public ActionResult Gif() + { + return this.View(); + } + + public ActionResult Bmp() { return View(); } + public ActionResult Tiff() + { + return View(); + } + + public ActionResult External() + { + return this.View(); + } + } } diff --git a/src/TestWebsites/NET4/Test_Website.csproj b/src/TestWebsites/NET4/Test_Website.csproj index fb01e395b..2db21a134 100644 --- a/src/TestWebsites/NET4/Test_Website.csproj +++ b/src/TestWebsites/NET4/Test_Website.csproj @@ -84,7 +84,6 @@ - @@ -155,6 +154,24 @@ + + + + + + + + + + + + + + + + + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/src/TestWebsites/NET4/Views/Home/Bmp.cshtml b/src/TestWebsites/NET4/Views/Home/Bmp.cshtml new file mode 100644 index 000000000..26b21ad46 --- /dev/null +++ b/src/TestWebsites/NET4/Views/Home/Bmp.cshtml @@ -0,0 +1,100 @@ +@{ + ViewBag.Title = "Bmp"; +} + +
+

Bmp

+
+
+
+

Resized

+ +
+
+

Cropped

+ +
+
+
+
+

Filter

+
+
+

blackwhite

+ +
+
+

comic

+ +
+
+
+
+

lomograph

+ +
+
+

greyscale

+ +
+
+
+
+

polaroid

+ +
+
+

sepia

+ +
+
+
+
+

gotham

+ +
+
+

hisatch

+ +
+
+
+
+

losatch

+ +
+
+
+
+
+
+

Watermark

+ +
+
+

Format

+ +
+
+
+
+
+
+

Rotate

+ +
+
+

Quality

+ +
+
+
+
+
+
+

Alpha

+ +
+
+
+
diff --git a/src/TestWebsites/NET4/Views/Home/External.cshtml b/src/TestWebsites/NET4/Views/Home/External.cshtml new file mode 100644 index 000000000..220d6a0a9 --- /dev/null +++ b/src/TestWebsites/NET4/Views/Home/External.cshtml @@ -0,0 +1,14 @@ +@{ + ViewBag.Title = "External"; +} +

External

+
+
+
+ +
+
+ +
+
+
diff --git a/src/TestWebsites/NET4/Views/Home/Gif.cshtml b/src/TestWebsites/NET4/Views/Home/Gif.cshtml new file mode 100644 index 000000000..cb7c3ba25 --- /dev/null +++ b/src/TestWebsites/NET4/Views/Home/Gif.cshtml @@ -0,0 +1,99 @@ +@{ + ViewBag.Title = "Gif"; +} +
+

Gif

+
+
+
+

Resized

+ +
+
+

Cropped

+ +
+
+
+
+

Filter

+
+
+

blackwhite

+ +
+
+

comic

+ +
+
+
+
+

lomograph

+ +
+
+

greyscale

+ +
+
+
+
+

polaroid

+ +
+
+

sepia

+ +
+
+
+
+

gotham

+ +
+
+

hisatch

+ +
+
+
+
+

losatch

+ +
+
+
+
+
+
+

Watermark

+ +
+
+

Format

+ +
+
+
+
+
+
+

Rotate

+ +
+
+

Quality

+ +
+
+
+
+
+
+

Alpha

+ +
+
+
+
diff --git a/src/TestWebsites/NET4/Views/Home/Index.cshtml b/src/TestWebsites/NET4/Views/Home/Index.cshtml index c1da5a373..adde1b4a6 100644 --- a/src/TestWebsites/NET4/Views/Home/Index.cshtml +++ b/src/TestWebsites/NET4/Views/Home/Index.cshtml @@ -5,594 +5,186 @@

Jpg

-
+

Resized

Foreign language test.

+
-
+

Cropped

-

Filter

-
-
-

blackwhite

- -
-
-

comic

- -
-
-
-
-

lomograph

- -
-
-

greyscale

- -
-
-
-
-

polaroid

- -
-
-

sepia

- -
-
-
-
-

gotham

- -
-
-

hisatch

- -
-
-
-
-

losatch

- -
-
-
-
-
-
-

Watermark

- -
-
-

Format

- -
-
-
-
-
-
-

Rotate

- -
-
-

Quality

- -
-
-
-
-
-
-

Alpha

- -
-
-

Remote

- - @**@ - -
-
-
-
-
-
-

Flip - horizontal

- -
-
-

Flip - vertical

- -
-
-
- -
-

Gif

-
-
-
-

Resized

- -
-
-

Cropped

- -
-
-
-
-

Filter

-
-
-

blackwhite

- -
-
-

comic

- -
-
-
-
-

lomograph

- -
-
-

greyscale

- -
-
-
-
-

polaroid

- -
-
-

sepia

- -
-
-
-
-

gotham

- -
-
-

hisatch

- -
-
-
-
-

losatch

- -
-
-
-
-
-
-

Watermark

- -
-
-

Format

- -
-
-
-
-
-
-

Rotate

- -
-
-

Quality

- -
-
-
-
-
-
-

Alpha

- -
-
-
-
-
-

Png

-
-
-
-

Resized

- -
-
-

Cropped

- -
-
-
-
-

Filter

-
-
-

blackwhite

- -
-
-

comic

- -
-
-
-

lomograph

- -
-
-

greyscale

- -
-
-
-
-

polaroid

- -
-
-

sepia

- -
-
-
-
-

gotham

- -
-
-

hisatch

- +

Reside Pad

+
+
-
-
-
-

losatch

- +
+
-
-

Watermark

- +

Resize Crop

+
+
-
-

Format

- +
+
-
-

Rotate

- -
-
-

Quality

- +

Resize Max

+
+
-
-
-
-
-
-

Alpha

- +
+
-
-
-

Png8

-
+
-
-

Resized

- +

Resize Stretch

+
+
-
-

Cropped

- +
+

Filter

-
+

blackwhite

- +
-
+

comic

- +
-
+

lomograph

- +
-
+

greyscale

- +
-
+

polaroid

- +
-
+

sepia

- +
-
+

gotham

- +
-
+

hisatch

- +
-
+

losatch

- +
-
+

Watermark

- +
-
+

Format

- +
-
+

Rotate

- +
-
+

Quality

- +
-
+

Alpha

- -
-
-
-
-
-

Bmp

-
-
-
-

Resized

- -
-
-

Cropped

- -
-
-
-
-

Filter

-
-
-

blackwhite

- -
-
-

comic

- -
-
-
-
-

lomograph

- -
-
-

greyscale

- -
-
-
-
-

polaroid

- -
-
-

sepia

- -
-
-
-
-

gotham

- -
-
-

hisatch

- -
-
-
-
-

losatch

- -
-
-
-
-
-
-

Watermark

- +
-
-

Format

- +
+

Remote

-
-

Rotate

- -
-
-

Quality

- +
+

Flip - horizontal

+
-
-
-
-
-
-

Alpha

- +
+

Flip - vertical

+
+ +
-

Tiff

-
+

Color Profiles

+ @*
-
-

Resized

- +
+

CMYK original jpg

+
-
-

Cropped

- +
+

sRGB original jpg

+
-
+
*@
-

Filter

-
-
-

blackwhite

- -
-
-

comic

- -
-
-
-

lomograph

- +
+

CMYK resized jpg

+
-
-

greyscale

- -
-
-
-
-

polaroid

- -
-
-

sepia

- -
-
-
-
-

gotham

- -
-
-

hisatch

- -
-
-
-
-

losatch

- -
-
-
-
-
-
-

Watermark

- -
-
-

Format

- -
-
-
-
-
-
-

Rotate

- -
-
-

Quality

- -
-
-
-
-
-
-

Alpha

- + +
+

sRGB resized jpg

+
diff --git a/src/TestWebsites/NET4/Views/Home/Png.cshtml b/src/TestWebsites/NET4/Views/Home/Png.cshtml new file mode 100644 index 000000000..d01e7ae8c --- /dev/null +++ b/src/TestWebsites/NET4/Views/Home/Png.cshtml @@ -0,0 +1,99 @@ +@{ + ViewBag.Title = "Png"; +} +
+

Png

+
+
+
+

Resized

+ +
+
+

Cropped

+ +
+
+
+
+

Filter

+
+
+

blackwhite

+ +
+
+

comic

+ +
+
+
+
+

lomograph

+ +
+
+

greyscale

+ +
+
+
+
+

polaroid

+ +
+
+

sepia

+ +
+
+
+
+

gotham

+ +
+
+

hisatch

+ +
+
+
+
+

losatch

+ +
+
+
+
+
+
+

Watermark

+ +
+
+

Format

+ +
+
+
+
+
+
+

Rotate

+ +
+
+

Quality

+ +
+
+
+
+
+
+

Alpha

+ +
+
+
+
diff --git a/src/TestWebsites/NET4/Views/Home/Png8.cshtml b/src/TestWebsites/NET4/Views/Home/Png8.cshtml new file mode 100644 index 000000000..8784c836f --- /dev/null +++ b/src/TestWebsites/NET4/Views/Home/Png8.cshtml @@ -0,0 +1,100 @@ +@{ + ViewBag.Title = "Png8"; +} + +
+

Png8

+
+
+
+

Resized

+ +
+
+

Cropped

+ +
+
+
+
+

Filter

+
+
+

blackwhite

+ +
+
+

comic

+ +
+
+
+
+

lomograph

+ +
+
+

greyscale

+ +
+
+
+
+

polaroid

+ +
+
+

sepia

+ +
+
+
+
+

gotham

+ +
+
+

hisatch

+ +
+
+
+
+

losatch

+ +
+
+
+
+
+
+

Watermark

+ +
+
+

Format

+ +
+
+
+
+
+
+

Rotate

+ +
+
+

Quality

+ +
+
+
+
+
+
+

Alpha

+ +
+
+
+
diff --git a/src/TestWebsites/NET4/Views/Home/Tiff.cshtml b/src/TestWebsites/NET4/Views/Home/Tiff.cshtml new file mode 100644 index 000000000..091e068fb --- /dev/null +++ b/src/TestWebsites/NET4/Views/Home/Tiff.cshtml @@ -0,0 +1,99 @@ +@{ + ViewBag.Title = "Tiff"; +} +
+

Tiff

+
+
+
+

Resized

+ +
+
+

Cropped

+ +
+
+
+
+

Filter

+
+
+

blackwhite

+ +
+
+

comic

+ +
+
+
+
+

lomograph

+ +
+
+

greyscale

+ +
+
+
+
+

polaroid

+ +
+
+

sepia

+ +
+
+
+
+

gotham

+ +
+
+

hisatch

+ +
+
+
+
+

losatch

+ +
+
+
+
+
+
+

Watermark

+ +
+
+

Format

+ +
+
+
+
+
+
+

Rotate

+ +
+
+

Quality

+ +
+
+
+
+
+
+

Alpha

+ +
+
+
+
diff --git a/src/TestWebsites/NET4/Views/Shared/_Layout.cshtml b/src/TestWebsites/NET4/Views/Shared/_Layout.cshtml index c9f6404a3..2a812b676 100644 --- a/src/TestWebsites/NET4/Views/Shared/_Layout.cshtml +++ b/src/TestWebsites/NET4/Views/Shared/_Layout.cshtml @@ -3,17 +3,38 @@ @ViewBag.Title - - + + -
-

ImageProcessor NET4

-
-
- @RenderBody() -
+
+
+

ImageProcessor NET4

+
+ +
+ @RenderBody() +
+
diff --git a/src/TestWebsites/NET4/config/imageprocessor/processing.config b/src/TestWebsites/NET4/config/imageprocessor/processing.config index 1ad37e85a..787d0214c 100644 --- a/src/TestWebsites/NET4/config/imageprocessor/processing.config +++ b/src/TestWebsites/NET4/config/imageprocessor/processing.config @@ -1,18 +1,17 @@  - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + 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 55cc2db9d..adde1b4a6 100644 --- a/src/TestWebsites/NET45/Test_Website_NET45/Views/Home/Index.cshtml +++ b/src/TestWebsites/NET45/Test_Website_NET45/Views/Home/Index.cshtml @@ -40,6 +40,28 @@ +
+
+

Resize Max

+
+ +
+
+ +
+
+
+
+
+

Resize Stretch

+
+ +
+
+ +
+
+

Filter

@@ -121,7 +143,7 @@

Remote

-
+
@@ -141,7 +163,7 @@

Color Profiles

-@*
+ @*

CMYK original jpg

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 30e796783..c1efcd9dd 100644 --- a/src/TestWebsites/NET45/Test_Website_NET45/config/imageprocessor/processing.config +++ b/src/TestWebsites/NET45/Test_Website_NET45/config/imageprocessor/processing.config @@ -7,12 +7,6 @@ - - - - - -