mirror of https://github.com/SixLabors/ImageSharp
committed by
Scott Williams
128 changed files with 1551 additions and 217 deletions
@ -0,0 +1,29 @@ |
|||
// <copyright file="BootstrapperExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class BootstrapperExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Adds the BMP format.
|
|||
/// </summary>
|
|||
/// <param name="bootstrapper">The bootstrapper.</param>
|
|||
/// <returns>The bootstraper</returns>
|
|||
public static Bootstrapper AddBmpFormat(this Bootstrapper bootstrapper) |
|||
{ |
|||
bootstrapper.AddImageFormat(new BmpFormat()); |
|||
return bootstrapper; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
// <copyright file="ImageExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class ImageExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Saves the image to the given stream with the bmp format.
|
|||
/// </summary>
|
|||
/// <typeparam name="TColor">The pixel format.</typeparam>
|
|||
/// <param name="source">The image this method extends.</param>
|
|||
/// <param name="stream">The stream to save the image to.</param>
|
|||
/// <exception cref="System.ArgumentNullException">Thrown if the stream is null.</exception>
|
|||
/// <returns>
|
|||
/// The <see cref="Image{TColoR}"/>.
|
|||
/// </returns>
|
|||
public static Image<TColor> SaveAsBmp<TColor>(this Image<TColor> source, Stream stream) |
|||
where TColor : struct, IPackedPixel, IEquatable<TColor> |
|||
=> source.Save(stream, new BmpEncoder()); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> |
|||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> |
|||
</PropertyGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" /> |
|||
<PropertyGroup Label="Globals"> |
|||
<ProjectGuid>c77661b9-f793-422e-8e27-ac60ecc5f215</ProjectGuid> |
|||
<RootNamespace>ImageSharp.Formats.Bmp</RootNamespace> |
|||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath> |
|||
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath> |
|||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<SchemaVersion>2.0</SchemaVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> |
|||
<ProduceOutputsOnBuild>True</ProduceOutputsOnBuild> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" /> |
|||
</ItemGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" /> |
|||
</Project> |
|||
@ -0,0 +1,40 @@ |
|||
// <copyright file="AssemblyInfo.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
using System.Reflection; |
|||
using System.Resources; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
// General Information about an assembly is controlled through the following
|
|||
// set of attributes. Change these attribute values to modify the information
|
|||
// associated with an assembly.
|
|||
[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] |
|||
[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] |
|||
[assembly: AssemblyConfiguration("")] |
|||
[assembly: AssemblyCompany("James Jackson-South")] |
|||
[assembly: AssemblyProduct("ImageSharp")] |
|||
[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] |
|||
[assembly: AssemblyTrademark("")] |
|||
[assembly: AssemblyCulture("")] |
|||
[assembly: NeutralResourcesLanguage("en")] |
|||
|
|||
// Version information for an assembly consists of the following four values:
|
|||
//
|
|||
// Major Version
|
|||
// Minor Version
|
|||
// Build Number
|
|||
// Revision
|
|||
//
|
|||
// 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: AssemblyFileVersion("1.0.0.0")] |
|||
[assembly: AssemblyInformationalVersion("1.0.0.0")] |
|||
|
|||
// Ensure the internals can be tested.
|
|||
[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests46")] |
|||
@ -0,0 +1,73 @@ |
|||
{ |
|||
"version": "1.0.0-*", |
|||
"title": "ImageSharp.Formats.Bmp", |
|||
"description": "A cross-platform library for the processing of image files; written in C#", |
|||
"authors": [ |
|||
"James Jackson-South and contributors" |
|||
], |
|||
"packOptions": { |
|||
"owners": [ |
|||
"James Jackson-South and contributors" |
|||
], |
|||
"projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", |
|||
"licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", |
|||
"iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", |
|||
"requireLicenseAcceptance": false, |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "https://github.com/JimBobSquarePants/ImageSharp" |
|||
}, |
|||
"tags": [ |
|||
"Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" |
|||
] |
|||
}, |
|||
"buildOptions": { |
|||
"allowUnsafe": true, |
|||
"xmlDoc": true, |
|||
"additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] |
|||
}, |
|||
"configurations": { |
|||
"Release": { |
|||
"buildOptions": { |
|||
"warningsAsErrors": true, |
|||
"optimize": true |
|||
} |
|||
} |
|||
}, |
|||
"dependencies": { |
|||
"ImageSharp": "1.0.0-*", |
|||
"StyleCop.Analyzers": { |
|||
"version": "1.1.0-beta001", |
|||
"type": "build" |
|||
}, |
|||
"System.Buffers": "4.0.0", |
|||
"System.Numerics.Vectors": "4.1.1", |
|||
"System.Runtime.CompilerServices.Unsafe": "4.0.0" |
|||
}, |
|||
"frameworks": { |
|||
"netstandard1.1": { |
|||
"dependencies": { |
|||
"System.Collections": "4.0.11", |
|||
"System.Diagnostics.Debug": "4.0.11", |
|||
"System.Diagnostics.Tools": "4.0.1", |
|||
"System.IO": "4.1.0", |
|||
"System.IO.Compression": "4.1.0", |
|||
"System.Linq": "4.1.0", |
|||
"System.ObjectModel": "4.0.12", |
|||
"System.Resources.ResourceManager": "4.0.1", |
|||
"System.Runtime.Extensions": "4.1.0", |
|||
"System.Runtime.InteropServices": "4.1.0", |
|||
"System.Runtime.Numerics": "4.0.1", |
|||
"System.Text.Encoding.Extensions": "4.0.11", |
|||
"System.Threading": "4.0.11", |
|||
"System.Threading.Tasks": "4.0.11", |
|||
"System.Threading.Tasks.Parallel": "4.0.1" |
|||
} |
|||
}, |
|||
"net45": { |
|||
"dependencies": { |
|||
"System.Runtime": "4.0.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
// <copyright file="BootstrapperExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class BootstrapperExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Adds the Gif format.
|
|||
/// </summary>
|
|||
/// <param name="bootstrapper">The bootstrapper.</param>
|
|||
/// <returns>The Bootstrapper</returns>
|
|||
public static Bootstrapper AddGifFormat(this Bootstrapper bootstrapper) |
|||
{ |
|||
bootstrapper.AddImageFormat(new GifFormat()); |
|||
return bootstrapper; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
// <copyright file="ComparableExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for classes that implement <see cref="IComparable{T}"/>.
|
|||
/// </summary>
|
|||
internal static class ComparableExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Restricts a <see cref="int"/> to be within a specified range.
|
|||
/// </summary>
|
|||
/// <param name="value">The The value to clamp.</param>
|
|||
/// <param name="min">The minimum value. If value is less than min, min will be returned.</param>
|
|||
/// <param name="max">The maximum value. If value is greater than max, max will be returned.</param>
|
|||
/// <returns>
|
|||
/// The <see cref="int"/> representing the clamped value.
|
|||
/// </returns>
|
|||
public static int Clamp(this int value, int min, int max) |
|||
{ |
|||
if (value > max) |
|||
{ |
|||
return max; |
|||
} |
|||
|
|||
if (value < min) |
|||
{ |
|||
return min; |
|||
} |
|||
|
|||
return value; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
// <copyright file="ImageMaths.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.Linq; |
|||
using System.Numerics; |
|||
|
|||
/// <summary>
|
|||
/// Provides common mathematical methods.
|
|||
/// </summary>
|
|||
internal static class ImageMaths |
|||
{ |
|||
/// <summary>
|
|||
/// Returns how many bits are required to store the specified number of colors.
|
|||
/// Performs a Log2() on the value.
|
|||
/// </summary>
|
|||
/// <param name="colors">The number of colors.</param>
|
|||
/// <returns>
|
|||
/// The <see cref="int"/>
|
|||
/// </returns>
|
|||
public static int GetBitsNeededForColorDepth(int colors) |
|||
{ |
|||
return (int)Math.Ceiling(Math.Log(colors, 2)); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
// <copyright file="StreamExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System.Buffers; |
|||
using System.IO; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Stream"/> type.
|
|||
/// </summary>
|
|||
internal static class StreamExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Skips the number of bytes in the given stream.
|
|||
/// </summary>
|
|||
/// <param name="stream">The stream.</param>
|
|||
/// <param name="count">The count.</param>
|
|||
public static void Skip(this Stream stream, int count) |
|||
{ |
|||
if (count < 1) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
if (stream.CanSeek) |
|||
{ |
|||
stream.Position += count; |
|||
} |
|||
else |
|||
{ |
|||
byte[] foo = ArrayPool<byte>.Shared.Rent(count); |
|||
try |
|||
{ |
|||
stream.Read(foo, 0, count); |
|||
} |
|||
finally |
|||
{ |
|||
ArrayPool<byte>.Shared.Return(foo); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,53 @@ |
|||
// <copyright file="ImageExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class ImageExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Saves the image to the given stream with the gif format.
|
|||
/// </summary>
|
|||
/// <typeparam name="TColor">The pixel format.</typeparam>
|
|||
/// <param name="source">The image this method extends.</param>
|
|||
/// <param name="stream">The stream to save the image to.</param>
|
|||
/// <param name="quality">The quality to save the image to representing the number of colors. Between 1 and 256.</param>
|
|||
/// <exception cref="System.ArgumentNullException">Thrown if the stream is null.</exception>
|
|||
/// <returns>
|
|||
/// The <see cref="Image{TColor}"/>.
|
|||
/// </returns>
|
|||
public static Image<TColor> SaveAsGif<TColor>(this Image<TColor> source, Stream stream, int quality = 256) |
|||
where TColor : struct, IPackedPixel, IEquatable<TColor> |
|||
=> source.Save(stream, new GifEncoder { Quality = quality }); |
|||
|
|||
/// <summary>
|
|||
/// To the frame.
|
|||
/// </summary>
|
|||
/// <typeparam name="TColor">The type of the color.</typeparam>
|
|||
/// <param name="source">The source.</param>
|
|||
/// <returns>The frame</returns>
|
|||
internal static ImageFrame<TColor> ToFrame<TColor>(this ImageBase<TColor> source) |
|||
where TColor : struct, IPackedPixel, IEquatable<TColor> |
|||
=> new ImageFrame<TColor>(source); |
|||
|
|||
/// <summary>
|
|||
/// Clones the specified source.
|
|||
/// </summary>
|
|||
/// <typeparam name="TColor">The type of the color.</typeparam>
|
|||
/// <param name="source">The source.</param>
|
|||
/// <returns>The frame</returns>
|
|||
internal static ImageFrame<TColor> Clone<TColor>(this ImageFrame<TColor> source) |
|||
where TColor : struct, IPackedPixel, IEquatable<TColor> |
|||
=> new ImageFrame<TColor>(source); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> |
|||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> |
|||
</PropertyGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" /> |
|||
<PropertyGroup Label="Globals"> |
|||
<ProjectGuid>27ad4b5f-ecc4-4c63-9ecb-04ec772fdb6f</ProjectGuid> |
|||
<RootNamespace>ImageSharp.Formats.Gif</RootNamespace> |
|||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath> |
|||
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath> |
|||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<SchemaVersion>2.0</SchemaVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> |
|||
<ProduceOutputsOnBuild>True</ProduceOutputsOnBuild> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" /> |
|||
</ItemGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" /> |
|||
</Project> |
|||
@ -0,0 +1,40 @@ |
|||
// <copyright file="AssemblyInfo.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
using System.Reflection; |
|||
using System.Resources; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
// General Information about an assembly is controlled through the following
|
|||
// set of attributes. Change these attribute values to modify the information
|
|||
// associated with an assembly.
|
|||
[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] |
|||
[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] |
|||
[assembly: AssemblyConfiguration("")] |
|||
[assembly: AssemblyCompany("James Jackson-South")] |
|||
[assembly: AssemblyProduct("ImageSharp")] |
|||
[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] |
|||
[assembly: AssemblyTrademark("")] |
|||
[assembly: AssemblyCulture("")] |
|||
[assembly: NeutralResourcesLanguage("en")] |
|||
|
|||
// Version information for an assembly consists of the following four values:
|
|||
//
|
|||
// Major Version
|
|||
// Minor Version
|
|||
// Build Number
|
|||
// Revision
|
|||
//
|
|||
// 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: AssemblyFileVersion("1.0.0.0")] |
|||
[assembly: AssemblyInformationalVersion("1.0.0.0")] |
|||
|
|||
// Ensure the internals can be tested.
|
|||
[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests46")] |
|||
@ -0,0 +1,73 @@ |
|||
{ |
|||
"version": "1.0.0-*", |
|||
"title": "ImageSharp.Formats.Gif", |
|||
"description": "A cross-platform library for the processing of image files; written in C#", |
|||
"authors": [ |
|||
"James Jackson-South and contributors" |
|||
], |
|||
"packOptions": { |
|||
"owners": [ |
|||
"James Jackson-South and contributors" |
|||
], |
|||
"projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", |
|||
"licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", |
|||
"iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", |
|||
"requireLicenseAcceptance": false, |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "https://github.com/JimBobSquarePants/ImageSharp" |
|||
}, |
|||
"tags": [ |
|||
"Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" |
|||
] |
|||
}, |
|||
"buildOptions": { |
|||
"allowUnsafe": true, |
|||
"xmlDoc": true, |
|||
"additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] |
|||
}, |
|||
"configurations": { |
|||
"Release": { |
|||
"buildOptions": { |
|||
"warningsAsErrors": true, |
|||
"optimize": true |
|||
} |
|||
} |
|||
}, |
|||
"dependencies": { |
|||
"ImageSharp": "1.0.0-*", |
|||
"StyleCop.Analyzers": { |
|||
"version": "1.1.0-beta001", |
|||
"type": "build" |
|||
}, |
|||
"System.Buffers": "4.0.0", |
|||
"System.Numerics.Vectors": "4.1.1", |
|||
"System.Runtime.CompilerServices.Unsafe": "4.0.0" |
|||
}, |
|||
"frameworks": { |
|||
"netstandard1.1": { |
|||
"dependencies": { |
|||
"System.Collections": "4.0.11", |
|||
"System.Diagnostics.Debug": "4.0.11", |
|||
"System.Diagnostics.Tools": "4.0.1", |
|||
"System.IO": "4.1.0", |
|||
"System.IO.Compression": "4.1.0", |
|||
"System.Linq": "4.1.0", |
|||
"System.ObjectModel": "4.0.12", |
|||
"System.Resources.ResourceManager": "4.0.1", |
|||
"System.Runtime.Extensions": "4.1.0", |
|||
"System.Runtime.InteropServices": "4.1.0", |
|||
"System.Runtime.Numerics": "4.0.1", |
|||
"System.Text.Encoding.Extensions": "4.0.11", |
|||
"System.Threading": "4.0.11", |
|||
"System.Threading.Tasks": "4.0.11", |
|||
"System.Threading.Tasks.Parallel": "4.0.1" |
|||
} |
|||
}, |
|||
"net45": { |
|||
"dependencies": { |
|||
"System.Runtime": "4.0.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
// <copyright file="BootstrapperExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class BootstrapperExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Adds the Jpeg format.
|
|||
/// </summary>
|
|||
/// <param name="bootstrapper">The bootstrapper.</param>
|
|||
/// <returns>The Bootstrapper</returns>
|
|||
public static Bootstrapper AddJpegFormat(this Bootstrapper bootstrapper) |
|||
{ |
|||
bootstrapper.AddImageFormat(new JpegFormat()); |
|||
return bootstrapper; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
// <copyright file="ComparableExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for classes that implement <see cref="IComparable{T}"/>.
|
|||
/// </summary>
|
|||
internal static class ComparableExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Restricts a <see cref="int"/> to be within a specified range.
|
|||
/// </summary>
|
|||
/// <param name="value">The The value to clamp.</param>
|
|||
/// <param name="min">The minimum value. If value is less than min, min will be returned.</param>
|
|||
/// <param name="max">The maximum value. If value is greater than max, max will be returned.</param>
|
|||
/// <returns>
|
|||
/// The <see cref="int"/> representing the clamped value.
|
|||
/// </returns>
|
|||
public static int Clamp(this int value, int min, int max) |
|||
{ |
|||
if (value > max) |
|||
{ |
|||
return max; |
|||
} |
|||
|
|||
if (value < min) |
|||
{ |
|||
return min; |
|||
} |
|||
|
|||
return value; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Restricts a <see cref="float"/> to be within a specified range.
|
|||
/// </summary>
|
|||
/// <param name="value">The The value to clamp.</param>
|
|||
/// <param name="min">The minimum value. If value is less than min, min will be returned.</param>
|
|||
/// <param name="max">The maximum value. If value is greater than max, max will be returned.</param>
|
|||
/// <returns>
|
|||
/// The <see cref="float"/> representing the clamped value.
|
|||
/// </returns>
|
|||
public static float Clamp(this float value, float min, float max) |
|||
{ |
|||
if (value > max) |
|||
{ |
|||
return max; |
|||
} |
|||
|
|||
if (value < min) |
|||
{ |
|||
return min; |
|||
} |
|||
|
|||
return value; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
// <copyright file="ImageExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class ImageExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Saves the image to the given stream with the jpeg format.
|
|||
/// </summary>
|
|||
/// <typeparam name="TColor">The pixel format.</typeparam>
|
|||
/// <param name="source">The image this method extends.</param>
|
|||
/// <param name="stream">The stream to save the image to.</param>
|
|||
/// <param name="quality">The quality to save the image to. Between 1 and 100.</param>
|
|||
/// <exception cref="System.ArgumentNullException">Thrown if the stream is null.</exception>
|
|||
/// <returns>
|
|||
/// The <see cref="Image{TColor}"/>.
|
|||
/// </returns>
|
|||
public static Image<TColor> SaveAsJpeg<TColor>(this Image<TColor> source, Stream stream, int quality = 75) |
|||
where TColor : struct, IPackedPixel, IEquatable<TColor> |
|||
=> source.Save(stream, new JpegEncoder { Quality = quality }); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> |
|||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> |
|||
</PropertyGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" /> |
|||
<PropertyGroup Label="Globals"> |
|||
<ProjectGuid>7213767c-0003-41ca-ab18-0223cfa7ce4b</ProjectGuid> |
|||
<RootNamespace>ImageSharp.Formats</RootNamespace> |
|||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath> |
|||
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath> |
|||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<SchemaVersion>2.0</SchemaVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> |
|||
<ProduceOutputsOnBuild>True</ProduceOutputsOnBuild> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" /> |
|||
</ItemGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" /> |
|||
</Project> |
|||
@ -0,0 +1,40 @@ |
|||
// <copyright file="AssemblyInfo.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
using System.Reflection; |
|||
using System.Resources; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
// General Information about an assembly is controlled through the following
|
|||
// set of attributes. Change these attribute values to modify the information
|
|||
// associated with an assembly.
|
|||
[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] |
|||
[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] |
|||
[assembly: AssemblyConfiguration("")] |
|||
[assembly: AssemblyCompany("James Jackson-South")] |
|||
[assembly: AssemblyProduct("ImageSharp")] |
|||
[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] |
|||
[assembly: AssemblyTrademark("")] |
|||
[assembly: AssemblyCulture("")] |
|||
[assembly: NeutralResourcesLanguage("en")] |
|||
|
|||
// Version information for an assembly consists of the following four values:
|
|||
//
|
|||
// Major Version
|
|||
// Minor Version
|
|||
// Build Number
|
|||
// Revision
|
|||
//
|
|||
// 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: AssemblyFileVersion("1.0.0.0")] |
|||
[assembly: AssemblyInformationalVersion("1.0.0.0")] |
|||
|
|||
// Ensure the internals can be tested.
|
|||
[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests46")] |
|||
@ -0,0 +1,73 @@ |
|||
{ |
|||
"version": "1.0.0-*", |
|||
"title": "ImageSharp.Formats.Jpeg", |
|||
"description": "A cross-platform library for the processing of image files; written in C#", |
|||
"authors": [ |
|||
"James Jackson-South and contributors" |
|||
], |
|||
"packOptions": { |
|||
"owners": [ |
|||
"James Jackson-South and contributors" |
|||
], |
|||
"projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", |
|||
"licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", |
|||
"iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", |
|||
"requireLicenseAcceptance": false, |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "https://github.com/JimBobSquarePants/ImageSharp" |
|||
}, |
|||
"tags": [ |
|||
"Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" |
|||
] |
|||
}, |
|||
"buildOptions": { |
|||
"allowUnsafe": true, |
|||
"xmlDoc": true, |
|||
"additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] |
|||
}, |
|||
"configurations": { |
|||
"Release": { |
|||
"buildOptions": { |
|||
"warningsAsErrors": true, |
|||
"optimize": true |
|||
} |
|||
} |
|||
}, |
|||
"dependencies": { |
|||
"ImageSharp": "1.0.0-*", |
|||
"StyleCop.Analyzers": { |
|||
"version": "1.1.0-beta001", |
|||
"type": "build" |
|||
}, |
|||
"System.Buffers": "4.0.0", |
|||
"System.Numerics.Vectors": "4.1.1", |
|||
"System.Runtime.CompilerServices.Unsafe": "4.0.0" |
|||
}, |
|||
"frameworks": { |
|||
"netstandard1.1": { |
|||
"dependencies": { |
|||
"System.Collections": "4.0.11", |
|||
"System.Diagnostics.Debug": "4.0.11", |
|||
"System.Diagnostics.Tools": "4.0.1", |
|||
"System.IO": "4.1.0", |
|||
"System.IO.Compression": "4.1.0", |
|||
"System.Linq": "4.1.0", |
|||
"System.ObjectModel": "4.0.12", |
|||
"System.Resources.ResourceManager": "4.0.1", |
|||
"System.Runtime.Extensions": "4.1.0", |
|||
"System.Runtime.InteropServices": "4.1.0", |
|||
"System.Runtime.Numerics": "4.0.1", |
|||
"System.Text.Encoding.Extensions": "4.0.11", |
|||
"System.Threading": "4.0.11", |
|||
"System.Threading.Tasks": "4.0.11", |
|||
"System.Threading.Tasks.Parallel": "4.0.1" |
|||
} |
|||
}, |
|||
"net45": { |
|||
"dependencies": { |
|||
"System.Runtime": "4.0.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
// <copyright file="BootstrapperExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class BootstrapperExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Adds the Png format.
|
|||
/// </summary>
|
|||
/// <param name="bootstrapper">The bootstrapper.</param>
|
|||
/// <returns>The Bootstrapper</returns>
|
|||
public static Bootstrapper AddPngFormat(this Bootstrapper bootstrapper) |
|||
{ |
|||
bootstrapper.AddImageFormat(new PngFormat()); |
|||
return bootstrapper; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
// <copyright file="ByteExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="byte"/> struct.
|
|||
/// </summary>
|
|||
internal static class ByteExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Optimized <see cref="T:byte[]"/> reversal algorithm.
|
|||
/// </summary>
|
|||
/// <param name="source">The byte array.</param>
|
|||
public static void ReverseBytes(this byte[] source) |
|||
{ |
|||
ReverseBytes(source, 0, source.Length); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Optimized <see cref="T:byte[]"/> reversal algorithm.
|
|||
/// </summary>
|
|||
/// <param name="source">The byte array.</param>
|
|||
/// <param name="index">The index.</param>
|
|||
/// <param name="length">The length.</param>
|
|||
/// <exception cref="System.ArgumentNullException"><paramref name="source"/> is null.</exception>
|
|||
public static void ReverseBytes(this byte[] source, int index, int length) |
|||
{ |
|||
Guard.NotNull(source, nameof(source)); |
|||
|
|||
int i = index; |
|||
int j = index + length - 1; |
|||
while (i < j) |
|||
{ |
|||
byte temp = source[i]; |
|||
source[i] = source[j]; |
|||
source[j] = temp; |
|||
i++; |
|||
j--; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
// <copyright file="ComparableExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for classes that implement <see cref="IComparable{T}"/>.
|
|||
/// </summary>
|
|||
internal static class ComparableExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Restricts a <see cref="int"/> to be within a specified range.
|
|||
/// </summary>
|
|||
/// <param name="value">The The value to clamp.</param>
|
|||
/// <param name="min">The minimum value. If value is less than min, min will be returned.</param>
|
|||
/// <param name="max">The maximum value. If value is greater than max, max will be returned.</param>
|
|||
/// <returns>
|
|||
/// The <see cref="int"/> representing the clamped value.
|
|||
/// </returns>
|
|||
public static int Clamp(this int value, int min, int max) |
|||
{ |
|||
if (value > max) |
|||
{ |
|||
return max; |
|||
} |
|||
|
|||
if (value < min) |
|||
{ |
|||
return min; |
|||
} |
|||
|
|||
return value; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Swaps the references to two objects in memory.
|
|||
/// </summary>
|
|||
/// <param name="first">The first reference.</param>
|
|||
/// <param name="second">The second reference.</param>
|
|||
/// <typeparam name="T">The type of object.</typeparam>
|
|||
public static void Swap<T>(ref T first, ref T second) |
|||
{ |
|||
T temp = second; |
|||
second = first; |
|||
first = temp; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
// <copyright file="ImageMaths.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.Linq; |
|||
using System.Numerics; |
|||
|
|||
/// <summary>
|
|||
/// Provides common mathematical methods.
|
|||
/// </summary>
|
|||
internal static class ImageMaths |
|||
{ |
|||
/// <summary>
|
|||
/// Returns how many bits are required to store the specified number of colors.
|
|||
/// Performs a Log2() on the value.
|
|||
/// </summary>
|
|||
/// <param name="colors">The number of colors.</param>
|
|||
/// <returns>
|
|||
/// The <see cref="int"/>
|
|||
/// </returns>
|
|||
public static int GetBitsNeededForColorDepth(int colors) |
|||
{ |
|||
return (int)Math.Ceiling(Math.Log(colors, 2)); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
// <copyright file="StreamExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System.Buffers; |
|||
using System.IO; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Stream"/> type.
|
|||
/// </summary>
|
|||
internal static class StreamExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Skips the number of bytes in the given stream.
|
|||
/// </summary>
|
|||
/// <param name="stream">The stream.</param>
|
|||
/// <param name="count">The count.</param>
|
|||
public static void Skip(this Stream stream, int count) |
|||
{ |
|||
if (count < 1) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
if (stream.CanSeek) |
|||
{ |
|||
stream.Position += count; |
|||
} |
|||
else |
|||
{ |
|||
byte[] foo = ArrayPool<byte>.Shared.Rent(count); |
|||
try |
|||
{ |
|||
stream.Read(foo, 0, count); |
|||
} |
|||
finally |
|||
{ |
|||
ArrayPool<byte>.Shared.Return(foo); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
// <copyright file="ImageExtensions.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp |
|||
{ |
|||
using System; |
|||
using System.IO; |
|||
|
|||
using Formats; |
|||
|
|||
/// <summary>
|
|||
/// Extension methods for the <see cref="Image{TColor}"/> type.
|
|||
/// </summary>
|
|||
public static partial class ImageExtensions |
|||
{ |
|||
/// <summary>
|
|||
/// Saves the image to the given stream with the png format.
|
|||
/// </summary>
|
|||
/// <typeparam name="TColor">The pixel format.</typeparam>
|
|||
/// <param name="source">The image this method extends.</param>
|
|||
/// <param name="stream">The stream to save the image to.</param>
|
|||
/// <param name="quality">The quality to save the image to representing the number of colors.
|
|||
/// Anything equal to 256 and below will cause the encoder to save the image in an indexed format.
|
|||
/// </param>
|
|||
/// <exception cref="System.ArgumentNullException">Thrown if the stream is null.</exception>
|
|||
/// <returns>
|
|||
/// The <see cref="Image{TColor}"/>.
|
|||
/// </returns>
|
|||
public static Image<TColor> SaveAsPng<TColor>(this Image<TColor> source, Stream stream, int quality = int.MaxValue) |
|||
where TColor : struct, IPackedPixel, IEquatable<TColor> |
|||
=> source.Save(stream, new PngEncoder { Quality = quality }); |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> |
|||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> |
|||
</PropertyGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" /> |
|||
<PropertyGroup Label="Globals"> |
|||
<ProjectGuid>556abdcf-ed93-4327-be98-f6815f78b9b8</ProjectGuid> |
|||
<RootNamespace>ImageSharp.Formats.Png</RootNamespace> |
|||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath> |
|||
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath> |
|||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<SchemaVersion>2.0</SchemaVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> |
|||
<ProduceOutputsOnBuild>True</ProduceOutputsOnBuild> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" /> |
|||
</ItemGroup> |
|||
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" /> |
|||
</Project> |
|||
@ -0,0 +1,40 @@ |
|||
// <copyright file="AssemblyInfo.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
using System.Reflection; |
|||
using System.Resources; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
// General Information about an assembly is controlled through the following
|
|||
// set of attributes. Change these attribute values to modify the information
|
|||
// associated with an assembly.
|
|||
[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] |
|||
[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] |
|||
[assembly: AssemblyConfiguration("")] |
|||
[assembly: AssemblyCompany("James Jackson-South")] |
|||
[assembly: AssemblyProduct("ImageSharp")] |
|||
[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] |
|||
[assembly: AssemblyTrademark("")] |
|||
[assembly: AssemblyCulture("")] |
|||
[assembly: NeutralResourcesLanguage("en")] |
|||
|
|||
// Version information for an assembly consists of the following four values:
|
|||
//
|
|||
// Major Version
|
|||
// Minor Version
|
|||
// Build Number
|
|||
// Revision
|
|||
//
|
|||
// 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: AssemblyFileVersion("1.0.0.0")] |
|||
[assembly: AssemblyInformationalVersion("1.0.0.0")] |
|||
|
|||
// Ensure the internals can be tested.
|
|||
[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests")] |
|||
[assembly: InternalsVisibleTo("ImageSharp.Tests46")] |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue