Browse Source

New Releases

ImageProcessor v2.2.0.0
ImageProcessor.Web v4.2.0.0
ImageProcessor.Web.PostProcessor v1.0.2.0
ImageProcessor.Web.Config v2.2.0.0
ImageProcessor.Web.AzureBlobCache v1.0.0.0


Former-commit-id: dbc295c25fbcea2d328b8dea80b45742f31fd241
Former-commit-id: 59bc4ee9d9bbf4c426e8bb35caafb88634266ff3
pull/17/head
James South 11 years ago
parent
commit
4dc07f36d7
  1. 40
      build/NuSpecs/ImageProcessor.Web.AzureBlobCache.nuspec
  2. 14
      build/NuSpecs/ImageProcessor.Web.Config.nuspec
  3. 6
      build/NuSpecs/ImageProcessor.Web.PostProcessor.nuspec
  4. 6
      build/NuSpecs/ImageProcessor.Web.nuspec
  5. 2
      build/NuSpecs/ImageProcessor.nuspec
  6. 13
      build/build.xml
  7. 15
      build/content/ImageProcessor.Web.AzureBlobCache/config/imageprocessor/cache.config.transform
  8. 4
      build/content/ImageProcessor.Web.Config/web.config.transform
  9. 23
      src/ImageProcessor.UnitTests/ImageFactoryUnitTests.cs
  10. 6
      src/ImageProcessor.Web.AzureBlobCache/Properties/AssemblyInfo.cs
  11. 2
      src/ImageProcessor.Web.PostProcessor/Properties/AssemblyInfo.cs
  12. 2
      src/ImageProcessor.Web/Configuration/ImageCacheSection.cs
  13. 22
      src/ImageProcessor.Web/Configuration/ImageProcessingSection.cs
  14. 2
      src/ImageProcessor.Web/Configuration/ImageSecuritySection.cs
  15. 2
      src/ImageProcessor.Web/Configuration/Resources/cache.config.transform
  16. 0
      src/ImageProcessor.Web/Configuration/Resources/processing.config.transform
  17. 0
      src/ImageProcessor.Web/Configuration/Resources/security.config.transform
  18. 19
      src/ImageProcessor.Web/Helpers/TypePropertyHelpers.cs
  19. 11
      src/ImageProcessor.Web/ImageProcessor.Web.csproj
  20. 4
      src/ImageProcessor.Web/Properties/AssemblyInfo.cs
  21. 2
      src/ImageProcessor/Imaging/Helpers/ImageMaths.cs
  22. 4
      src/ImageProcessor/Properties/AssemblyInfo.cs

40
build/NuSpecs/ImageProcessor.Web.AzureBlobCache.nuspec

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>ImageProcessor.Web.AzureBlobCache</id>
<version>1.0.0.0</version>
<title>ImageProcessor.Web.AzureBlobCache</title>
<authors>James South</authors>
<owners>James South</owners>
<projectUrl>http://imageprocessor.org</projectUrl>
<iconUrl>http://imageprocessor.org/assets/ico/apple-touch-icon-144x144.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Adds a self cleaning cache that uses Azure Blob Containers to store processed images.
If you use ImageProcessor.Web please get in touch via my twitter @james_m_south
Feedback is always welcome</description>
<summary>ImageProcessor.Web AzureBlobCache for ASP.NET websites.</summary>
<releaseNotes />
<copyright>James South</copyright>
<language>en-GB</language>
<tags>Image Resize Crop Rotate Quality Watermark Gif Jpg Jpeg Bitmap Png Tiff Azure Cache Asp</tags>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="ImageProcessor" version="2.2.0.0" />
<dependency id="ImageProcessor.Web" version="4.2.0.0" />
<dependency id="Microsoft.Data.Edm" version="5.6.2" />
<dependency id="Microsoft.Data.OData" version="5.6.2" />
<dependency id="Microsoft.Data.Services.Client" version="5.6.2" />
<dependency id="Microsoft.WindowsAzure.ConfigurationManager" version="1.8.0.0" />
<dependency id="Newtonsoft.Json" version="5.0.8" />
<dependency id="System.Spatial" version="5.6.2" />
<dependency id="WindowsAzure.Storage" version="4.3.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="..\content\ImageProcessor.Web.AzureBlobCache\config\imageprocessor\cache.config.transform" target="content\config\imageprocessor\cache.config.transform" />
<file src="..\_BuildOutput\ImageProcessor.Web.AzureBlobCache\lib\net45\ImageProcessor.Web.Caching.AzureBlobCache.dll" target="lib\net45\ImageProcessor.Web.Caching.AzureBlobCache.dll" />
</files>
</package>

14
build/NuSpecs/ImageProcessor.Web.Config.nuspec

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>ImageProcessor.Web.Config</id>
<version>2.1.0.0</version>
<version>2.2.0.0</version>
<title>ImageProcessor.Web.Config</title>
<authors>James South</authors>
<owners>James South</owners>
@ -11,7 +11,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Adds configuration to your ImageProcessor.Web solution to allow you to override the default settings.
If you use ImageProcessor please get in touch via my twitter @james_m_south
If you use ImageProcessor.Web please get in touch via my twitter @james_m_south
Feedback is always welcome</description>
<summary>ImageProcessor.Web configuration settings for ASP.NET websites.</summary>
@ -21,15 +21,15 @@ Feedback is always welcome</description>
<tags>Image Resize Crop Rotate Quality Watermark Gif Jpg Jpeg Bitmap Png Tiff ASP Cache EXIF</tags>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="ImageProcessor" version="2.1.0.0" />
<dependency id="ImageProcessor.Web" version="4.1.0.0" />
<dependency id="ImageProcessor" version="2.2.0.0" />
<dependency id="ImageProcessor.Web" version="4.2.0.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="..\..\src\ImageProcessor.Web\Configuration\Resources\cache.config" target="content\config\imageprocessor\cache.config" />
<file src="..\..\src\ImageProcessor.Web\Configuration\Resources\processing.config" target="content\config\imageprocessor\processing.config" />
<file src="..\..\src\ImageProcessor.Web\Configuration\Resources\security.config" target="content\config\imageprocessor\security.config" />
<file src="..\..\src\ImageProcessor.Web\Configuration\Resources\cache.config.transform" target="content\config\imageprocessor\cache.config.transform" />
<file src="..\..\src\ImageProcessor.Web\Configuration\Resources\processing.config.transform" target="content\config\imageprocessor\processing.config.transform" />
<file src="..\..\src\ImageProcessor.Web\Configuration\Resources\security.config.transform" target="content\config\imageprocessor\security.config.transform" />
<file src="..\content\ImageProcessor.Web.Config\web.config.transform" target="content\web.config.transform" />
</files>
</package>

6
build/NuSpecs/ImageProcessor.Web.PostProcessor.nuspec

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>ImageProcessor.Web.PostProcessor</id>
<version>1.0.1.0</version>
<version>1.0.2.0</version>
<title>ImageProcessor.Web.PostProcessor</title>
<authors>James South</authors>
<owners>James South</owners>
@ -21,8 +21,8 @@ Feedback is always welcome</description>
<tags>Image Resize Crop Rotate Quality Watermark Gif Jpg Jpeg Bitmap Png Tiff ASP Cache EXIF</tags>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="ImageProcessor" version="2.1.0.0" />
<dependency id="ImageProcessor.Web" version="4.1.4.0" />
<dependency id="ImageProcessor" version="2.2.0.0" />
<dependency id="ImageProcessor.Web" version="4.2.0.0" />
</group>
</dependencies>
</metadata>

6
build/NuSpecs/ImageProcessor.Web.nuspec

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>ImageProcessor.Web</id>
<version>4.1.4.0</version>
<version>4.2.0.0</version>
<title>ImageProcessor.Web</title>
<authors>James South</authors>
<owners>James South</owners>
@ -13,7 +13,7 @@
Methods include: Resize, Rotate, Rounded Corners, Flip, Crop, Watermark, Filter, Saturation, Brightness, Contrast, Quality, Format, Vignette, Gaussian Blur, Gaussian Sharpen, and Transparency.
If you use ImageProcessor please get in touch via my twitter @james_m_south
If you use ImageProcessor.Web please get in touch via my twitter @james_m_south
Feedback is always welcome</description>
<summary>An extension to ImageProcessor that allows on-the-fly processing of image files in an ASP.NET website</summary>
@ -23,7 +23,7 @@ Feedback is always welcome</description>
<tags>Image Resize Crop Rotate Quality Watermark Gif Jpg Jpeg Bitmap Png Tiff ASP Cache EXIF</tags>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="ImageProcessor" version="2.1.0.0" />
<dependency id="ImageProcessor" version="2.2.0.0" />
</group>
</dependencies>
</metadata>

2
build/NuSpecs/ImageProcessor.nuspec

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>ImageProcessor</id>
<version>2.1.0.0</version>
<version>2.2.0.0</version>
<title>ImageProcessor</title>
<authors>James South</authors>
<owners>James South</owners>

13
build/build.xml

@ -1,7 +1,7 @@
<projects>
<project>
<name>ImageProcessor</name>
<version>2.1.0.0</version>
<version>2.2.0.0</version>
<folder>..\src\ImageProcessor</folder>
<projfile>ImageProcessor.csproj</projfile>
<outputs>
@ -22,6 +22,17 @@
<nuspec>ImageProcessor.Web.nuspec</nuspec>
</project>
<project>
<name>ImageProcessor Web Azure Blob Cache</name>
<version>1.0.0.0</version>
<folder>..\src\ImageProcessor.Web.AzureBlobCache</folder>
<projfile>ImageProcessor.Web.AzureBlobCache.csproj</projfile>
<outputs>
<output folder="ImageProcessor.Web.AzureBlobCache\lib\net45" />
</outputs>
<nuspec>ImageProcessor.Web.AzureBlobCache.nuspec</nuspec>
</project>
<project>
<name>ImageProcessor Web PostProcessor</name>
<version>1.0.2.0</version>

15
build/content/ImageProcessor.Web.AzureBlobCache/config/imageprocessor/cache.config.transform

@ -0,0 +1,15 @@
<caching currentCache="AzureBlobCache">
<caches>
<cache name="AzureBlobCache" type="ImageProcessor.Web.Caching.AzureBlobCache, ImageProcessor.Web.Caching.AzureBlobCache">
<settings>
<setting key="MaxDays" value="365"/>
<setting key="CachedStorageAccount" value="DefaultEndpointsProtocol=https;AccountName=[CacheAccountName];AccountKey=[CacheAccountKey]"/>
<setting key="SourceStorageAccount" value="DefaultEndpointsProtocol=https;AccountName=[SourceAccountName];AccountKey=[SourceAccountKey]"/>
<setting key="CachedBlobContainer" value="cache"/>
<setting key="SourceBlobContainer" value="source"/>
<setting key="CachedCDNRoot" value="[CdnRootUrl]"/>
</settings>
</cache>
</caches>
</caching>

4
build/content/ImageProcessor.Web.Config/web.config.transform

@ -4,13 +4,13 @@
<sectionGroup name="imageProcessor">
<section name="security" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageSecuritySection, ImageProcessor.Web"/>
<section name="processing" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageProcessingSection, ImageProcessor.Web"/>
<section name="cache" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageCacheSection, ImageProcessor.Web"/>
<section name="caching" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageCacheSection, ImageProcessor.Web"/>
</sectionGroup>
</configSections>
<imageProcessor>
<security configSource="config\imageprocessor\security.config" />
<cache configSource="config\imageprocessor\cache.config" />
<caching configSource="config\imageprocessor\cache.config" />
<processing configSource="config\imageprocessor\processing.config" />
</imageProcessor>
</configuration>

23
src/ImageProcessor.UnitTests/ImageFactoryUnitTests.cs

@ -128,25 +128,12 @@ namespace ImageProcessor.UnitTests
Image original = (Image)imageFactory.Image.Clone();
imageFactory.Alpha(50);
ISupportedImageFormat format = imageFactory.CurrentImageFormat;
AssertionHelpers.AssertImagesAreDifferent(
original,
imageFactory.Image,
"because the alpha operation should have been applied on {0}",
imageFactory.ImagePath);
// The Image class does not support alpha transparency in bitmaps.
if (format.GetType() == typeof(BitmapFormat))
{
AssertionHelpers.AssertImagesAreIdentical(
original,
imageFactory.Image,
"because the alpha operation should not have been applied on {0}",
imageFactory.ImagePath);
}
else
{
AssertionHelpers.AssertImagesAreDifferent(
original,
imageFactory.Image,
"because the alpha operation should have been applied on {0}",
imageFactory.ImagePath);
}
}
}

6
src/ImageProcessor.Web.AzureBlobCache/Properties/AssemblyInfo.cs

@ -1,4 +1,4 @@
using System.Reflection;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ImageProcessor.Web.AzureBlobCache")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -31,6 +31,6 @@ 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("1.0.*")]
// [assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

2
src/ImageProcessor.Web.PostProcessor/Properties/AssemblyInfo.cs

@ -31,6 +31,6 @@ 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("1.0.1.0")]
// [assembly: AssemblyVersion("1.0.2.0")]
[assembly: AssemblyVersion("1.0.2.0")]
[assembly: AssemblyFileVersion("1.0.2.0")]

2
src/ImageProcessor.Web/Configuration/ImageCacheSection.cs

@ -66,7 +66,7 @@ namespace ImageProcessor.Web.Configuration
return imageCacheSection;
}
string section = ResourceHelpers.ResourceAsString("ImageProcessor.Web.Configuration.Resources.cache.config");
string section = ResourceHelpers.ResourceAsString("ImageProcessor.Web.Configuration.Resources.cache.config.transform");
XmlReader reader = new XmlTextReader(new StringReader(section));
imageCacheSection = new ImageCacheSection();
imageCacheSection.DeserializeSection(reader);

22
src/ImageProcessor.Web/Configuration/ImageProcessingSection.cs

@ -13,8 +13,8 @@ namespace ImageProcessor.Web.Configuration
{
using System.Configuration;
using System.IO;
using System.Linq;
using System.Xml;
using ImageProcessor.Web.Helpers;
/// <summary>
@ -24,6 +24,7 @@ namespace ImageProcessor.Web.Configuration
public sealed class ImageProcessingSection : ConfigurationSection
{
#region Properties
/// <summary>
/// Gets or sets a value indicating whether to preserve exif meta data.
/// </summary>
@ -86,13 +87,14 @@ namespace ImageProcessor.Web.Configuration
return imageProcessingSection;
}
string section = ResourceHelpers.ResourceAsString("ImageProcessor.Web.Configuration.Resources.processing.config");
string section = ResourceHelpers.ResourceAsString("ImageProcessor.Web.Configuration.Resources.processing.config.transform");
XmlReader reader = new XmlTextReader(new StringReader(section));
imageProcessingSection = new ImageProcessingSection();
imageProcessingSection.DeserializeSection(reader);
imageProcessingSection.AutoLoadPlugins = true;
return imageProcessingSection;
}
#endregion
/// <summary>
@ -156,7 +158,9 @@ namespace ImageProcessor.Web.Configuration
/// Gets or sets the <see cref="T:ImageProcessor.Web.Config.ImageProcessingSection.PresetElement"/>
/// at the specified index within the collection.
/// </summary>
/// <param name="index">The index at which to get the specified object.</param>
/// <param name="index">
/// The index at which to get the specified object.
/// </param>
/// <returns>
/// The <see cref="T:ImageProcessor.Web.Config.ImageProcessingSection.PresetElement"/>
/// at the specified index within the collection.
@ -197,7 +201,9 @@ namespace ImageProcessor.Web.Configuration
/// The <see cref="ConfigurationElement">ConfigurationElement</see>
/// to return the key for.
/// </param>
/// <returns>The element key for a specified PluginElement configuration element.</returns>
/// <returns>
/// The element key for a specified PluginElement configuration element.
/// </returns>
protected override object GetElementKey(ConfigurationElement element)
{
return ((PresetElement)element).Name;
@ -280,7 +286,9 @@ namespace ImageProcessor.Web.Configuration
/// Gets or sets the <see cref="T:ImageProcessor.Web.Config.ImageProcessingSection.PluginElement"/>
/// at the specified index within the collection.
/// </summary>
/// <param name="index">The index at which to get the specified object.</param>
/// <param name="index">
/// The index at which to get the specified object.
/// </param>
/// <returns>
/// The <see cref="T:ImageProcessor.Web.Config.ImageProcessingSection.PluginElement"/>
/// at the specified index within the collection.
@ -321,7 +329,9 @@ namespace ImageProcessor.Web.Configuration
/// The <see cref="ConfigurationElement">ConfigurationElement</see>
/// to return the key for.
/// </param>
/// <returns>The element key for a specified PluginElement configuration element.</returns>
/// <returns>
/// The element key for a specified PluginElement configuration element.
/// </returns>
protected override object GetElementKey(ConfigurationElement element)
{
return ((PluginElement)element).Name;

2
src/ImageProcessor.Web/Configuration/ImageSecuritySection.cs

@ -55,7 +55,7 @@ namespace ImageProcessor.Web.Configuration
return imageSecuritySection;
}
string section = ResourceHelpers.ResourceAsString("ImageProcessor.Web.Configuration.Resources.security.config");
string section = ResourceHelpers.ResourceAsString("ImageProcessor.Web.Configuration.Resources.security.config.transform");
XmlReader reader = new XmlTextReader(new StringReader(section));
imageSecuritySection = new ImageSecuritySection();
imageSecuritySection.DeserializeSection(reader);

2
src/ImageProcessor.Web/Configuration/Resources/cache.config → src/ImageProcessor.Web/Configuration/Resources/cache.config.transform

@ -2,7 +2,7 @@
<caches>
<cache name="DiskCache" type="ImageProcessor.Web.Caching.DiskCache, ImageProcessor.Web">
<settings>
<setting key="MaxAge" value="365"/>
<setting key="MaxDays" value="365"/>
<setting key="VirtualCachePath" value="~/app_data/cache"/>
</settings>
</cache>

0
src/ImageProcessor.Web/Configuration/Resources/processing.config → src/ImageProcessor.Web/Configuration/Resources/processing.config.transform

0
src/ImageProcessor.Web/Configuration/Resources/security.config → src/ImageProcessor.Web/Configuration/Resources/security.config.transform

19
src/ImageProcessor.Web/Helpers/TypePropertyHelpers.cs

@ -1,19 +0,0 @@
namespace ImageProcessor.Web.Extensions
{
using System;
using System.Linq.Expressions;
internal static class TypePropertyHelpers
{
public static string GetPropertyName<T>(Expression<Func<T>> expression)
{
MemberExpression member = expression.Body as MemberExpression;
if (member != null)
{
return member.Member.Name;
}
throw new ArgumentException("expression");
}
}
}

11
src/ImageProcessor.Web/ImageProcessor.Web.csproj

@ -52,7 +52,6 @@
<Compile Include="Configuration\Shared\SettingElement.cs" />
<Compile Include="Configuration\Shared\SettingElementCollection.cs" />
<Compile Include="Extensions\TypeInitializationExtensions.cs" />
<Compile Include="Helpers\TypePropertyHelpers.cs" />
<Compile Include="Helpers\ProcessQueryStringEventArgs.cs" />
<Compile Include="Processors\DetectEdges.cs" />
<Compile Include="Processors\EntropyCrop.cs" />
@ -111,13 +110,13 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Configuration\Resources\cache.config">
<None Include="Configuration\Resources\cache.config.transform">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Configuration\Resources\processing.config">
</None>
<None Include="Configuration\Resources\processing.config.transform">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Configuration\Resources\security.config" />
</None>
<None Include="Configuration\Resources\security.config.transform" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />

4
src/ImageProcessor.Web/Properties/AssemblyInfo.cs

@ -40,5 +40,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("4.1.4.0")]
[assembly: AssemblyFileVersion("4.1.4.0")]
[assembly: AssemblyVersion("4.2.0.0")]
[assembly: AssemblyFileVersion("4.2.0.0")]

2
src/ImageProcessor/Imaging/Helpers/ImageMaths.cs

@ -36,7 +36,7 @@ namespace ImageProcessor.Imaging.Helpers
/// The <see cref="System.Type"/> to clamp.
/// </typeparam>
/// <returns>
/// The <see cref="T"/> representing the clamped value.
/// The <see cref="IComparable{T}"/> representing the clamped value.
/// </returns>
public static T Clamp<T>(T value, T min, T max) where T : IComparable<T>
{

4
src/ImageProcessor/Properties/AssemblyInfo.cs

@ -40,5 +40,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.0.0")]
[assembly: AssemblyFileVersion("2.1.0.0")]
[assembly: AssemblyVersion("2.2.0.0")]
[assembly: AssemblyFileVersion("2.2.0.0")]

Loading…
Cancel
Save