Browse Source

Merge remote-tracking branch 'origin/beta-1' into jpeg-lab

pull/299/head
Anton Firszov 9 years ago
parent
commit
296353a3af
  1. 153
      packages.xml
  2. 2
      samples/ChangeDefaultEncoderOptions/Program.cs
  3. 3
      src/ImageSharp.Drawing/Brushes/IBrush.cs
  4. 1
      src/ImageSharp.Drawing/Brushes/ImageBrush{TPixel}.cs
  5. 1
      src/ImageSharp.Drawing/Brushes/PatternBrush{TPixel}.cs
  6. 2
      src/ImageSharp.Drawing/Brushes/Processors/BrushApplicator.cs
  7. 1
      src/ImageSharp.Drawing/Brushes/RecolorBrush{TPixel}.cs
  8. 1
      src/ImageSharp.Drawing/Brushes/SolidBrush{TPixel}.cs
  9. 1
      src/ImageSharp.Drawing/Pens/IPen.cs
  10. 1
      src/ImageSharp.Drawing/Pens/Pens.cs
  11. 21
      src/ImageSharp.Drawing/PointInfo.cs
  12. 2
      src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs
  13. 4
      src/ImageSharp.Drawing/Processors/FillProcessor.cs
  14. 2
      src/ImageSharp.Drawing/Processors/FillRegionProcessor.cs
  15. 2
      src/ImageSharp/ColorSpaces/IAlmostEquatable.cs
  16. 2
      src/ImageSharp/ColorSpaces/IColorVector.cs
  17. 4
      src/ImageSharp/Common/Extensions/EnumerableExtensions.cs
  18. 4
      src/ImageSharp/Configuration.cs
  19. 7
      src/ImageSharp/Dithering/ErrorDiffusion/AtkinsonDiffuser.cs
  20. 7
      src/ImageSharp/Dithering/ErrorDiffusion/BurksDiffuser.cs
  21. 18
      src/ImageSharp/Dithering/ErrorDiffusion/ErrorDiffuserBase.cs
  22. 7
      src/ImageSharp/Dithering/ErrorDiffusion/FloydSteinbergDiffuser.cs
  23. 16
      src/ImageSharp/Dithering/ErrorDiffusion/IErrorDiffuser.cs
  24. 7
      src/ImageSharp/Dithering/ErrorDiffusion/JarvisJudiceNinkeDiffuser.cs
  25. 7
      src/ImageSharp/Dithering/ErrorDiffusion/Sierra2Diffuser.cs
  26. 7
      src/ImageSharp/Dithering/ErrorDiffusion/Sierra3Diffuser.cs
  27. 7
      src/ImageSharp/Dithering/ErrorDiffusion/SierraLiteDiffuser.cs
  28. 7
      src/ImageSharp/Dithering/ErrorDiffusion/StuckiDiffuser.cs
  29. 9
      src/ImageSharp/Dithering/Ordered/BayerDither.cs
  30. 4
      src/ImageSharp/Dithering/Ordered/IOrderedDither.cs
  31. 9
      src/ImageSharp/Dithering/Ordered/OrderedDither.cs
  32. 10
      src/ImageSharp/Dithering/Ordered/OrderedDitherBase.cs
  33. 2
      src/ImageSharp/Formats/Bmp/BmpBitsPerPixel.cs
  34. 2
      src/ImageSharp/Formats/Bmp/BmpCompression.cs
  35. 2
      src/ImageSharp/Formats/Bmp/BmpConfigurationModule.cs
  36. 2
      src/ImageSharp/Formats/Bmp/BmpConstants.cs
  37. 2
      src/ImageSharp/Formats/Bmp/BmpDecoder.cs
  38. 6
      src/ImageSharp/Formats/Bmp/BmpDecoderCore.cs
  39. 2
      src/ImageSharp/Formats/Bmp/BmpEncoder.cs
  40. 2
      src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs
  41. 2
      src/ImageSharp/Formats/Bmp/BmpFileHeader.cs
  42. 2
      src/ImageSharp/Formats/Bmp/BmpFormat.cs
  43. 2
      src/ImageSharp/Formats/Bmp/BmpImageFormatDetector.cs
  44. 2
      src/ImageSharp/Formats/Bmp/BmpInfoHeader.cs
  45. 2
      src/ImageSharp/Formats/Bmp/IBmpDecoderOptions.cs
  46. 2
      src/ImageSharp/Formats/Bmp/IBmpEncoderOptions.cs
  47. 1
      src/ImageSharp/Formats/Bmp/ImageExtensions.cs
  48. 2
      src/ImageSharp/Formats/Gif/DisposalMethod.cs
  49. 2
      src/ImageSharp/Formats/Gif/GifConfigurationModule.cs
  50. 2
      src/ImageSharp/Formats/Gif/GifConstants.cs
  51. 2
      src/ImageSharp/Formats/Gif/GifDecoder.cs
  52. 5
      src/ImageSharp/Formats/Gif/GifDecoderCore.cs
  53. 2
      src/ImageSharp/Formats/Gif/GifEncoder.cs
  54. 5
      src/ImageSharp/Formats/Gif/GifEncoderCore.cs
  55. 2
      src/ImageSharp/Formats/Gif/GifFormat.cs
  56. 2
      src/ImageSharp/Formats/Gif/GifImageFormatDetector.cs
  57. 2
      src/ImageSharp/Formats/Gif/IGifDecoderOptions.cs
  58. 2
      src/ImageSharp/Formats/Gif/IGifEncoderOptions.cs
  59. 1
      src/ImageSharp/Formats/Gif/ImageExtensions.cs
  60. 2
      src/ImageSharp/Formats/Gif/LzwDecoder.cs
  61. 2
      src/ImageSharp/Formats/Gif/LzwEncoder.cs
  62. 2
      src/ImageSharp/Formats/Gif/PackedField.cs
  63. 2
      src/ImageSharp/Formats/Gif/Sections/GifGraphicsControlExtension.cs
  64. 2
      src/ImageSharp/Formats/Gif/Sections/GifImageDescriptor.cs
  65. 2
      src/ImageSharp/Formats/Gif/Sections/GifLogicalScreenDescriptor.cs
  66. 2
      src/ImageSharp/Formats/Jpeg/Common/UnzigData.cs
  67. 1
      src/ImageSharp/Formats/Jpeg/GolangPort/Components/Decoder/JpegBlockProcessor.cs
  68. 1
      src/ImageSharp/Formats/Jpeg/GolangPort/Components/Decoder/OldJpegScanDecoder.ComputationData.cs
  69. 3
      src/ImageSharp/Formats/Jpeg/GolangPort/JpegEncoderCore.cs
  70. 3
      src/ImageSharp/Formats/Jpeg/GolangPort/OldJpegDecoderCore.cs
  71. 2
      src/ImageSharp/Formats/Jpeg/IJpegDecoderOptions.cs
  72. 2
      src/ImageSharp/Formats/Jpeg/IJpegEncoderOptions.cs
  73. 1
      src/ImageSharp/Formats/Jpeg/ImageExtensions.cs
  74. 2
      src/ImageSharp/Formats/Jpeg/JpegConfigurationModule.cs
  75. 2
      src/ImageSharp/Formats/Jpeg/JpegDecoder.cs
  76. 2
      src/ImageSharp/Formats/Jpeg/JpegEncoder.cs
  77. 2
      src/ImageSharp/Formats/Jpeg/JpegFormat.cs
  78. 2
      src/ImageSharp/Formats/Jpeg/JpegImageFormatDetector.cs
  79. 2
      src/ImageSharp/Formats/Jpeg/JpegSubsample.cs
  80. 3
      src/ImageSharp/Formats/Jpeg/PdfJsPort/JpegDecoderCore.cs
  81. 2
      src/ImageSharp/Formats/Png/Filters/AverageFilter.cs
  82. 2
      src/ImageSharp/Formats/Png/Filters/FilterType.cs
  83. 2
      src/ImageSharp/Formats/Png/Filters/NoneFilter.cs
  84. 2
      src/ImageSharp/Formats/Png/Filters/PaethFilter.cs
  85. 2
      src/ImageSharp/Formats/Png/Filters/SubFilter.cs
  86. 2
      src/ImageSharp/Formats/Png/Filters/UpFilter.cs
  87. 2
      src/ImageSharp/Formats/Png/IPngDecoderOptions.cs
  88. 2
      src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
  89. 1
      src/ImageSharp/Formats/Png/ImageExtensions.cs
  90. 2
      src/ImageSharp/Formats/Png/PngChunk.cs
  91. 2
      src/ImageSharp/Formats/Png/PngChunkTypes.cs
  92. 2
      src/ImageSharp/Formats/Png/PngColorType.cs
  93. 2
      src/ImageSharp/Formats/Png/PngConfigurationModule.cs
  94. 2
      src/ImageSharp/Formats/Png/PngConstants.cs
  95. 2
      src/ImageSharp/Formats/Png/PngDecoder.cs
  96. 5
      src/ImageSharp/Formats/Png/PngDecoderCore.cs
  97. 2
      src/ImageSharp/Formats/Png/PngEncoder.cs
  98. 4
      src/ImageSharp/Formats/Png/PngEncoderCore.cs
  99. 2
      src/ImageSharp/Formats/Png/PngFormat.cs
  100. 2
      src/ImageSharp/Formats/Png/PngHeader.cs

153
packages.xml

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Wyam.Docs" version="0.18.6" targetFramework="net462">
<package id="AngleSharp" version="0.9.9" targetFramework="net462" />
<package id="CommonServiceLocator" version="1.3" targetFramework="net462" />
<package id="DotlessClientOnly" version="1.5.2" targetFramework="net462" />
<package id="ManagedEsent" version="1.9.4" targetFramework="net462" />
<package id="Markdig" version="0.10.6" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.Elfie" version="0.10.6" targetFramework="net462" />
<package id="Microsoft.Composition" version="1.0.30" targetFramework="net462" />
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="net462" />
<package id="Microsoft.DotNet.InternalAbstractions" version="1.0.0" targetFramework="net462" />
<package id="Microsoft.DotNet.PlatformAbstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net462" />
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net462" />
<package id="Microsoft.Extensions.DependencyModel" version="1.1.1" targetFramework="net462" />
<package id="SharpScss" version="1.3.4" targetFramework="net462" />
<package id="System.AppContext" version="4.3.0" targetFramework="net462" />
<package id="System.Buffers" version="4.3.0" targetFramework="net462" />
<package id="System.Collections" version="4.3.0" targetFramework="net462" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net462" />
<package id="System.Collections.Immutable" version="1.3.1" targetFramework="net462" />
<package id="System.ComponentModel" version="4.3.0" targetFramework="net462" />
<package id="System.Console" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.Contracts" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net462" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net462" />
<package id="System.Dynamic.Runtime" version="4.3.0" targetFramework="net462" />
<package id="System.Globalization" version="4.3.0" targetFramework="net462" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net462" />
<package id="System.IO" version="4.3.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net462" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net462" />
<package id="System.Linq" version="4.3.0" targetFramework="net462" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net462" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net462" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net462" />
<package id="System.Reflection" version="4.3.0" targetFramework="net462" />
<package id="ReflectionMagic" version="3.0.0" targetFramework="net462" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net462" />
<package id="System.Reflection.Metadata" version="1.4.2" targetFramework="net462" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net462" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net462" />
<package id="System.Net.Http" version="4.3.1" targetFramework="net462" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net462" />
<package id="System.Text.Encoding.CodePages" version="4.3.0" targetFramework="net462" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net462" />
<package id="System.Text.Encodings.Web" version="4.3.0" targetFramework="net462" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net462" />
<package id="System.Threading" version="4.3.0" targetFramework="net462" />
<package id="ConcurrentHashSet" version="0.3.1" targetFramework="net462" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net462" />
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net462" />
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net462" />
<package id="Microsoft.Build.Framework" version="15.1.1012" targetFramework="net462" />
<package id="Microsoft.Build" version="15.1.1012" targetFramework="net462" />
<package id="Microsoft.Build.Utilities.Core" version="15.1.1012" targetFramework="net462" />
<package id="Microsoft.Build.Tasks.Core" version="15.1.1012" targetFramework="net462" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net462" />
<package id="System.ValueTuple" version="4.3.0" targetFramework="net462" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net462" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net462" />
<package id="NETStandard.Library" version="1.6.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Cryptography.Internal" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.DataProtection.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Diagnostics.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Html.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.JsonPatch" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Razor" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Razor.Runtime" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.DependencyInjection" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.FileSystemGlobbing" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Localization.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.ObjectPool" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.PlatformAbstractions" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Primitives" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Http.Features" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Http.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.ResponseCaching.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Routing.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.Caching.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.Configuration.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Hosting.Server.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.FileProviders.Abstractions" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Hosting.Abstractions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.FileProviders.Composite" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.FileProviders.Physical" version="1.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Options" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Authorization" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.DataProtection" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.Caching.Memory" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.Razor.Host" version="1.1.2" targetFramework="net462" />
<package id="Microsoft.Extensions.Localization" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Extensions.WebEncoders" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.Net.Http.Headers" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Http.Extensions" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.Abstractions" version="1.1.2" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Routing" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.WebUtilities" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Antiforgery" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Http" version="1.1.1" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.Core" version="1.1.2" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.DataAnnotations" version="1.1.2" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.Formatters.Json" version="1.1.2" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.ViewFeatures" version="1.1.2" targetFramework="net462" />
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net462" />
<package id="System.Xml.XPath" version="4.3.0" targetFramework="net462" />
<package id="System.Xml.XPath.XDocument" version="4.3.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.Common" version="2.0.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.CSharp" version="2.0.0" targetFramework="net462" />
<package id="Microsoft.AspNetCore.Mvc.Razor" version="1.1.2" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.VisualBasic" version="2.0.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.Workspaces.Common" version="2.0.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="2.0.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="2.0.0" targetFramework="net462" />
<package id="Microsoft.CodeAnalysis" version="2.0.0" targetFramework="net462" />
<package id="Wyam.CodeAnalysis" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Feeds" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Html" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Less" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Markdown" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Razor" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Sass" version="0.18.6" targetFramework="net462" />
<package id="Wyam.SearchIndex" version="0.18.6" targetFramework="net462" />
<package id="YamlDotNet" version="3.9.0" targetFramework="net462" />
<package id="YamlDotNet.Dynamic" version="3.2.3" targetFramework="net462" />
<package id="Wyam.Yaml" version="0.18.6" targetFramework="net462" />
<package id="Wyam.Web" version="0.18.6" targetFramework="net462" />
</package>
<package id="Wyam.Docs.Samson" version="0.18.6" targetFramework="net462" />
</packages>

2
samples/ChangeDefaultEncoderOptions/Program.cs

@ -3,7 +3,7 @@
using System; using System;
using SixLabors.ImageSharp; using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats.Jpeg;
namespace ChangeDefaultEncoderOptions namespace ChangeDefaultEncoderOptions
{ {

3
src/ImageSharp.Drawing/Brushes/IBrush.cs

@ -1,11 +1,12 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors; using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives; using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Drawing namespace SixLabors.ImageSharp.Drawing.Brushes
{ {
/// <summary> /// <summary>
/// Brush represents a logical configuration of a brush which can be used to source pixel colors /// Brush represents a logical configuration of a brush which can be used to source pixel colors

1
src/ImageSharp.Drawing/Brushes/ImageBrush{TPixel}.cs

@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System; using System;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors; using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;

1
src/ImageSharp.Drawing/Brushes/PatternBrush{TPixel}.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors; using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;

2
src/ImageSharp.Drawing/Brushes/Processors/BrushApplicator.cs

@ -5,7 +5,7 @@ using System;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Drawing.Processors namespace SixLabors.ImageSharp.Drawing.Brushes.Processors
{ {
/// <summary> /// <summary>
/// primitive that converts a point in to a color for discovering the fill color based on an implementation /// primitive that converts a point in to a color for discovering the fill color based on an implementation

1
src/ImageSharp.Drawing/Brushes/RecolorBrush{TPixel}.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors; using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;

1
src/ImageSharp.Drawing/Brushes/SolidBrush{TPixel}.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors; using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;

1
src/ImageSharp.Drawing/Pens/IPen.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Drawing.Brushes;
using SixLabors.ImageSharp.Drawing.Processors; using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;

1
src/ImageSharp.Drawing/Pens/Pens.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Drawing.Brushes;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Drawing.Pens namespace SixLabors.ImageSharp.Drawing.Pens

21
src/ImageSharp.Drawing/PointInfo.cs

@ -1,21 +0,0 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Drawing
{
/// <summary>
/// Returns details about how far away from the inside of a shape and the color the pixel could be.
/// </summary>
public struct PointInfo
{
/// <summary>
/// The distance along path
/// </summary>
public float DistanceAlongPath;
/// <summary>
/// The distance from path
/// </summary>
public float DistanceFromPath;
}
}

2
src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs

@ -94,7 +94,7 @@ namespace SixLabors.ImageSharp.Drawing.Processors
Parallel.For( Parallel.For(
minY, minY,
maxY, maxY,
this.ParallelOptions, source.Configuration.ParallelOptions,
y => y =>
{ {
Span<TPixel> background = sourcePixels.GetRowSpan(y).Slice(minX, width); Span<TPixel> background = sourcePixels.GetRowSpan(y).Slice(minX, width);

4
src/ImageSharp.Drawing/Processors/FillProcessor.cs

@ -5,6 +5,8 @@ using System;
using System.Numerics; using System.Numerics;
using System.Threading.Tasks; using System.Threading.Tasks;
using SixLabors.ImageSharp.Drawing; using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.Drawing.Brushes;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -77,7 +79,7 @@ namespace SixLabors.ImageSharp.Drawing.Processors
Parallel.For( Parallel.For(
minY, minY,
maxY, maxY,
this.ParallelOptions, source.Configuration.ParallelOptions,
y => y =>
{ {
int offsetY = y - startY; int offsetY = y - startY;

2
src/ImageSharp.Drawing/Processors/FillRegionProcessor.cs

@ -5,6 +5,8 @@ using System;
using System.Buffers; using System.Buffers;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Drawing; using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.Drawing.Brushes;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;

2
src/ImageSharp/ColorSpaces/IAlmostEquatable.cs

@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// </summary> /// </summary>
/// <typeparam name="TPixel">The type of objects to compare.</typeparam> /// <typeparam name="TPixel">The type of objects to compare.</typeparam>
/// <typeparam name="TPrecision">The object specifying the type to specify precision with.</typeparam> /// <typeparam name="TPrecision">The object specifying the type to specify precision with.</typeparam>
public interface IAlmostEquatable<in TPixel, in TPrecision> internal interface IAlmostEquatable<in TPixel, in TPrecision>
where TPrecision : struct, IComparable<TPrecision> where TPrecision : struct, IComparable<TPrecision>
{ {
/// <summary> /// <summary>

2
src/ImageSharp/ColorSpaces/IColorVector.cs

@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// <summary> /// <summary>
/// Color represented as a vector in its color space /// Color represented as a vector in its color space
/// </summary> /// </summary>
public interface IColorVector internal interface IColorVector
{ {
/// <summary> /// <summary>
/// Gets the vector representation of the color /// Gets the vector representation of the color

4
src/ImageSharp/Common/Extensions/EnumerableExtensions.cs

@ -4,12 +4,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp.Common
{ {
/// <summary> /// <summary>
/// Encapsulates a series of time saving extension methods to the <see cref="T:System.Collections.IEnumerable"/> interface. /// Encapsulates a series of time saving extension methods to the <see cref="T:System.Collections.IEnumerable"/> interface.
/// </summary> /// </summary>
public static class EnumerableExtensions internal static class EnumerableExtensions
{ {
/// <summary> /// <summary>
/// Generates a sequence of integral numbers within a specified range. /// Generates a sequence of integral numbers within a specified range.

4
src/ImageSharp/Configuration.cs

@ -7,6 +7,10 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Bmp;
using SixLabors.ImageSharp.Formats.Gif;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.IO; using SixLabors.ImageSharp.IO;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp

7
src/ImageSharp/Dithering/ErrorDiffusion/Atkinson.cs → src/ImageSharp/Dithering/ErrorDiffusion/AtkinsonDiffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Atkinson image dithering algorithm. /// Applies error diffusion based dithering using the Atkinson image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class Atkinson : ErrorDiffuser public sealed class AtkinsonDiffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Atkinson"/> class. /// Initializes a new instance of the <see cref="AtkinsonDiffuser"/> class.
/// </summary> /// </summary>
public Atkinson() public AtkinsonDiffuser()
: base(AtkinsonMatrix, 8) : base(AtkinsonMatrix, 8)
{ {
} }

7
src/ImageSharp/Dithering/ErrorDiffusion/Burks.cs → src/ImageSharp/Dithering/ErrorDiffusion/BurksDiffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Burks image dithering algorithm. /// Applies error diffusion based dithering using the Burks image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class Burks : ErrorDiffuser public sealed class BurksDiffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Burks"/> class. /// Initializes a new instance of the <see cref="BurksDiffuser"/> class.
/// </summary> /// </summary>
public Burks() public BurksDiffuser()
: base(BurksMatrix, 32) : base(BurksMatrix, 32)
{ {
} }

18
src/ImageSharp/Dithering/ErrorDiffusion/ErrorDiffuser.cs → src/ImageSharp/Dithering/ErrorDiffusion/ErrorDiffuserBase.cs

@ -7,12 +7,12 @@ using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering.Base
{ {
/// <summary> /// <summary>
/// The base class for performing error diffusion based dithering. /// The base class for performing error diffusion based dithering.
/// </summary> /// </summary>
public abstract class ErrorDiffuser : IErrorDiffuser public abstract class ErrorDiffuserBase : IErrorDiffuser
{ {
/// <summary> /// <summary>
/// The vector to perform division. /// The vector to perform division.
@ -40,11 +40,11 @@ namespace SixLabors.ImageSharp.Dithering
private readonly Fast2DArray<float> matrix; private readonly Fast2DArray<float> matrix;
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="ErrorDiffuser"/> class. /// Initializes a new instance of the <see cref="ErrorDiffuserBase"/> class.
/// </summary> /// </summary>
/// <param name="matrix">The dithering matrix.</param> /// <param name="matrix">The dithering matrix.</param>
/// <param name="divisor">The divisor.</param> /// <param name="divisor">The divisor.</param>
internal ErrorDiffuser(Fast2DArray<float> matrix, byte divisor) internal ErrorDiffuserBase(Fast2DArray<float> matrix, byte divisor)
{ {
Guard.NotNull(matrix, nameof(matrix)); Guard.NotNull(matrix, nameof(matrix));
Guard.MustBeGreaterThan(divisor, 0, nameof(divisor)); Guard.MustBeGreaterThan(divisor, 0, nameof(divisor));
@ -69,15 +69,15 @@ namespace SixLabors.ImageSharp.Dithering
/// <inheritdoc /> /// <inheritdoc />
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Dither<TPixel>(ImageBase<TPixel> pixels, TPixel source, TPixel transformed, int x, int y, int width, int height) public void Dither<TPixel>(ImageBase<TPixel> pixels, TPixel source, TPixel transformed, int x, int y, int minX, int minY, int maxX, int maxY)
where TPixel : struct, IPixel<TPixel> where TPixel : struct, IPixel<TPixel>
{ {
this.Dither(pixels, source, transformed, x, y, width, height, true); this.Dither(pixels, source, transformed, x, y, minX, minY, maxX, maxY, true);
} }
/// <inheritdoc /> /// <inheritdoc />
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel transformed, int x, int y, int width, int height, bool replacePixel) public void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel transformed, int x, int y, int minX, int minY, int maxX, int maxY, bool replacePixel)
where TPixel : struct, IPixel<TPixel> where TPixel : struct, IPixel<TPixel>
{ {
if (replacePixel) if (replacePixel)
@ -93,7 +93,7 @@ namespace SixLabors.ImageSharp.Dithering
for (int row = 0; row < this.matrixHeight; row++) for (int row = 0; row < this.matrixHeight; row++)
{ {
int matrixY = y + row; int matrixY = y + row;
if (matrixY > 0 && matrixY < height) if (matrixY > minY && matrixY < maxY)
{ {
Span<TPixel> rowSpan = image.GetRowSpan(matrixY); Span<TPixel> rowSpan = image.GetRowSpan(matrixY);
@ -101,7 +101,7 @@ namespace SixLabors.ImageSharp.Dithering
{ {
int matrixX = x + (col - this.startingOffset); int matrixX = x + (col - this.startingOffset);
if (matrixX > 0 && matrixX < width) if (matrixX > minX && matrixX < maxX)
{ {
float coefficient = this.matrix[row, col]; float coefficient = this.matrix[row, col];

7
src/ImageSharp/Dithering/ErrorDiffusion/FloydSteinberg.cs → src/ImageSharp/Dithering/ErrorDiffusion/FloydSteinbergDiffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Floyd–Steinberg image dithering algorithm. /// Applies error diffusion based dithering using the Floyd–Steinberg image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class FloydSteinberg : ErrorDiffuser public sealed class FloydSteinbergDiffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="FloydSteinberg"/> class. /// Initializes a new instance of the <see cref="FloydSteinbergDiffuser"/> class.
/// </summary> /// </summary>
public FloydSteinberg() public FloydSteinbergDiffuser()
: base(FloydSteinbergMatrix, 16) : base(FloydSteinbergMatrix, 16)
{ {
} }

16
src/ImageSharp/Dithering/ErrorDiffusion/IErrorDiffuser.cs

@ -18,10 +18,12 @@ namespace SixLabors.ImageSharp.Dithering
/// <param name="transformed">The transformed pixel</param> /// <param name="transformed">The transformed pixel</param>
/// <param name="x">The column index.</param> /// <param name="x">The column index.</param>
/// <param name="y">The row index.</param> /// <param name="y">The row index.</param>
/// <param name="width">The image width.</param> /// <param name="minX">The minimum column value.</param>
/// <param name="height">The image height.</param> /// <param name="minY">The minimum row value.</param>
/// <param name="maxX">The maximum column value.</param>
/// <param name="maxY">The maximum row value.</param>
/// <typeparam name="TPixel">The pixel format.</typeparam> /// <typeparam name="TPixel">The pixel format.</typeparam>
void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel transformed, int x, int y, int width, int height) void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel transformed, int x, int y, int minX, int minY, int maxX, int maxY)
where TPixel : struct, IPixel<TPixel>; where TPixel : struct, IPixel<TPixel>;
/// <summary> /// <summary>
@ -32,14 +34,16 @@ namespace SixLabors.ImageSharp.Dithering
/// <param name="transformed">The transformed pixel</param> /// <param name="transformed">The transformed pixel</param>
/// <param name="x">The column index.</param> /// <param name="x">The column index.</param>
/// <param name="y">The row index.</param> /// <param name="y">The row index.</param>
/// <param name="width">The image width.</param> /// <param name="minX">The minimum column value.</param>
/// <param name="height">The image height.</param> /// <param name="minY">The minimum row value.</param>
/// <param name="maxX">The maximum column value.</param>
/// <param name="maxY">The maximum row value.</param>
/// <param name="replacePixel"> /// <param name="replacePixel">
/// Whether to replace the pixel at the given coordinates with the transformed value. /// Whether to replace the pixel at the given coordinates with the transformed value.
/// Generally this would be true for standard two-color dithering but when used in conjunction with color quantization this should be false. /// Generally this would be true for standard two-color dithering but when used in conjunction with color quantization this should be false.
/// </param> /// </param>
/// <typeparam name="TPixel">The pixel format.</typeparam> /// <typeparam name="TPixel">The pixel format.</typeparam>
void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel transformed, int x, int y, int width, int height, bool replacePixel) void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel transformed, int x, int y, int minX, int minY, int maxX, int maxY, bool replacePixel)
where TPixel : struct, IPixel<TPixel>; where TPixel : struct, IPixel<TPixel>;
} }
} }

7
src/ImageSharp/Dithering/ErrorDiffusion/JarvisJudiceNinke.cs → src/ImageSharp/Dithering/ErrorDiffusion/JarvisJudiceNinkeDiffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the JarvisJudiceNinke image dithering algorithm. /// Applies error diffusion based dithering using the JarvisJudiceNinke image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class JarvisJudiceNinke : ErrorDiffuser public sealed class JarvisJudiceNinkeDiffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="JarvisJudiceNinke"/> class. /// Initializes a new instance of the <see cref="JarvisJudiceNinkeDiffuser"/> class.
/// </summary> /// </summary>
public JarvisJudiceNinke() public JarvisJudiceNinkeDiffuser()
: base(JarvisJudiceNinkeMatrix, 48) : base(JarvisJudiceNinkeMatrix, 48)
{ {
} }

7
src/ImageSharp/Dithering/ErrorDiffusion/Sierra2.cs → src/ImageSharp/Dithering/ErrorDiffusion/Sierra2Diffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Sierra2 image dithering algorithm. /// Applies error diffusion based dithering using the Sierra2 image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class Sierra2 : ErrorDiffuser public sealed class Sierra2Diffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Sierra2"/> class. /// Initializes a new instance of the <see cref="Sierra2Diffuser"/> class.
/// </summary> /// </summary>
public Sierra2() public Sierra2Diffuser()
: base(Sierra2Matrix, 16) : base(Sierra2Matrix, 16)
{ {
} }

7
src/ImageSharp/Dithering/ErrorDiffusion/Sierra3.cs → src/ImageSharp/Dithering/ErrorDiffusion/Sierra3Diffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Sierra3 image dithering algorithm. /// Applies error diffusion based dithering using the Sierra3 image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class Sierra3 : ErrorDiffuser public sealed class Sierra3Diffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Sierra3"/> class. /// Initializes a new instance of the <see cref="Sierra3Diffuser"/> class.
/// </summary> /// </summary>
public Sierra3() public Sierra3Diffuser()
: base(Sierra3Matrix, 32) : base(Sierra3Matrix, 32)
{ {
} }

7
src/ImageSharp/Dithering/ErrorDiffusion/SierraLite.cs → src/ImageSharp/Dithering/ErrorDiffusion/SierraLiteDiffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the SierraLite image dithering algorithm. /// Applies error diffusion based dithering using the SierraLite image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class SierraLite : ErrorDiffuser public sealed class SierraLiteDiffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="SierraLite"/> class. /// Initializes a new instance of the <see cref="SierraLiteDiffuser"/> class.
/// </summary> /// </summary>
public SierraLite() public SierraLiteDiffuser()
: base(SierraLiteMatrix, 4) : base(SierraLiteMatrix, 4)
{ {
} }

7
src/ImageSharp/Dithering/ErrorDiffusion/Stucki.cs → src/ImageSharp/Dithering/ErrorDiffusion/StuckiDiffuser.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Stucki image dithering algorithm. /// Applies error diffusion based dithering using the Stucki image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class Stucki : ErrorDiffuser public sealed class StuckiDiffuser : ErrorDiffuserBase
{ {
/// <summary> /// <summary>
/// The diffusion matrix /// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Stucki"/> class. /// Initializes a new instance of the <see cref="StuckiDiffuser"/> class.
/// </summary> /// </summary>
public Stucki() public StuckiDiffuser()
: base(StuckiMatrix, 42) : base(StuckiMatrix, 42)
{ {
} }

9
src/ImageSharp/Dithering/Ordered/Bayer.cs → src/ImageSharp/Dithering/Ordered/BayerDither.cs

@ -1,15 +1,16 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering.Ordered namespace SixLabors.ImageSharp.Dithering
{ {
/// <summary> /// <summary>
/// Applies error diffusion based dithering using the 4x4 Bayer dithering matrix. /// Applies error diffusion based dithering using the 4x4 Bayer dithering matrix.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/> /// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary> /// </summary>
public sealed class Bayer : OrderedDither4x4 public sealed class BayerDither : OrderedDitherBase
{ {
/// <summary> /// <summary>
/// The threshold matrix. /// The threshold matrix.
@ -25,9 +26,9 @@ namespace SixLabors.ImageSharp.Dithering.Ordered
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Bayer"/> class. /// Initializes a new instance of the <see cref="BayerDither"/> class.
/// </summary> /// </summary>
public Bayer() public BayerDither()
: base(ThresholdMatrix) : base(ThresholdMatrix)
{ {
} }

4
src/ImageSharp/Dithering/Ordered/IOrderedDither.cs

@ -21,10 +21,8 @@ namespace SixLabors.ImageSharp.Dithering
/// <param name="index">The component index to test the threshold against. Must range from 0 to 3.</param> /// <param name="index">The component index to test the threshold against. Must range from 0 to 3.</param>
/// <param name="x">The column index.</param> /// <param name="x">The column index.</param>
/// <param name="y">The row index.</param> /// <param name="y">The row index.</param>
/// <param name="width">The image width.</param>
/// <param name="height">The image height.</param>
/// <typeparam name="TPixel">The pixel format.</typeparam> /// <typeparam name="TPixel">The pixel format.</typeparam>
void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel upper, TPixel lower, byte[] bytes, int index, int x, int y, int width, int height) void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel upper, TPixel lower, byte[] bytes, int index, int x, int y)
where TPixel : struct, IPixel<TPixel>; where TPixel : struct, IPixel<TPixel>;
} }
} }

9
src/ImageSharp/Dithering/Ordered/Ordered.cs → src/ImageSharp/Dithering/Ordered/OrderedDither.cs

@ -1,15 +1,16 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering.Ordered namespace SixLabors.ImageSharp.Dithering
{ {
/// <summary> /// <summary>
/// Applies error diffusion based dithering using the 4x4 ordered dithering matrix. /// Applies error diffusion based dithering using the 4x4 ordered dithering matrix.
/// <see href="https://en.wikipedia.org/wiki/Ordered_dithering"/> /// <see href="https://en.wikipedia.org/wiki/Ordered_dithering"/>
/// </summary> /// </summary>
public sealed class Ordered : OrderedDither4x4 public sealed class OrderedDither : OrderedDitherBase
{ {
/// <summary> /// <summary>
/// The threshold matrix. /// The threshold matrix.
@ -25,9 +26,9 @@ namespace SixLabors.ImageSharp.Dithering.Ordered
}; };
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="Ordered"/> class. /// Initializes a new instance of the <see cref="OrderedDither"/> class.
/// </summary> /// </summary>
public Ordered() public OrderedDither()
: base(ThresholdMatrix) : base(ThresholdMatrix)
{ {
} }

10
src/ImageSharp/Dithering/Ordered/OrderedDither4x4.cs → src/ImageSharp/Dithering/Ordered/OrderedDitherBase.cs

@ -4,12 +4,12 @@
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Dithering.Ordered namespace SixLabors.ImageSharp.Dithering.Base
{ {
/// <summary> /// <summary>
/// The base class for performing ordered ditheroing using a 4x4 matrix. /// The base class for performing ordered ditheroing using a 4x4 matrix.
/// </summary> /// </summary>
public abstract class OrderedDither4x4 : IOrderedDither public abstract class OrderedDitherBase : IOrderedDither
{ {
/// <summary> /// <summary>
/// The dithering matrix /// The dithering matrix
@ -17,16 +17,16 @@ namespace SixLabors.ImageSharp.Dithering.Ordered
private Fast2DArray<byte> matrix; private Fast2DArray<byte> matrix;
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="OrderedDither4x4"/> class. /// Initializes a new instance of the <see cref="OrderedDitherBase"/> class.
/// </summary> /// </summary>
/// <param name="matrix">The thresholding matrix. </param> /// <param name="matrix">The thresholding matrix. </param>
internal OrderedDither4x4(Fast2DArray<byte> matrix) internal OrderedDitherBase(Fast2DArray<byte> matrix)
{ {
this.matrix = matrix; this.matrix = matrix;
} }
/// <inheritdoc /> /// <inheritdoc />
public void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel upper, TPixel lower, byte[] bytes, int index, int x, int y, int width, int height) public void Dither<TPixel>(ImageBase<TPixel> image, TPixel source, TPixel upper, TPixel lower, byte[] bytes, int index, int x, int y)
where TPixel : struct, IPixel<TPixel> where TPixel : struct, IPixel<TPixel>
{ {
// TODO: This doesn't really cut it for me. // TODO: This doesn't really cut it for me.

2
src/ImageSharp/Formats/Bmp/BmpBitsPerPixel.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Enumerates the available bits per pixel for bitmap. /// Enumerates the available bits per pixel for bitmap.

2
src/ImageSharp/Formats/Bmp/BmpCompression.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Defines how the compression type of the image data /// Defines how the compression type of the image data

2
src/ImageSharp/Formats/Bmp/BmpConfigurationModule.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the bmp format. /// Registers the image encoders, decoders and mime type detectors for the bmp format.

2
src/ImageSharp/Formats/Bmp/BmpConstants.cs

@ -3,7 +3,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Defines constants relating to BMPs /// Defines constants relating to BMPs

2
src/ImageSharp/Formats/Bmp/BmpDecoder.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Image decoder for generating an image out of a Windows bitmap stream. /// Image decoder for generating an image out of a Windows bitmap stream.

6
src/ImageSharp/Formats/Bmp/BmpDecoderCore.cs

@ -6,7 +6,7 @@ using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Performs the bmp decoding operation. /// Performs the bmp decoding operation.
@ -120,11 +120,11 @@ namespace SixLabors.ImageSharp.Formats
this.currentStream.Read(palette, 0, colorMapSize); this.currentStream.Read(palette, 0, colorMapSize);
} }
if (this.infoHeader.Width > Image<TPixel>.MaxWidth || this.infoHeader.Height > Image<TPixel>.MaxHeight) if (this.infoHeader.Width > int.MaxValue || this.infoHeader.Height > int.MaxValue)
{ {
throw new ArgumentOutOfRangeException( throw new ArgumentOutOfRangeException(
$"The input bitmap '{this.infoHeader.Width}x{this.infoHeader.Height}' is " $"The input bitmap '{this.infoHeader.Width}x{this.infoHeader.Height}' is "
+ $"bigger then the max allowed size '{Image<TPixel>.MaxWidth}x{Image<TPixel>.MaxHeight}'"); + $"bigger then the max allowed size '{int.MaxValue}x{int.MaxValue}'");
} }
Image<TPixel> image = new Image<TPixel>(this.configuration, this.infoHeader.Width, this.infoHeader.Height); Image<TPixel> image = new Image<TPixel>(this.configuration, this.infoHeader.Width, this.infoHeader.Height);

2
src/ImageSharp/Formats/Bmp/BmpEncoder.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Image encoder for writing an image to a stream as a Windows bitmap. /// Image encoder for writing an image to a stream as a Windows bitmap.

2
src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs

@ -6,7 +6,7 @@ using System.IO;
using SixLabors.ImageSharp.IO; using SixLabors.ImageSharp.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Image encoder for writing an image to a stream as a Windows bitmap. /// Image encoder for writing an image to a stream as a Windows bitmap.

2
src/ImageSharp/Formats/Bmp/BmpFileHeader.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Stores general information about the Bitmap file. /// Stores general information about the Bitmap file.

2
src/ImageSharp/Formats/Bmp/BmpFormat.cs

@ -3,7 +3,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the bmp format. /// Registers the image encoders, decoders and mime type detectors for the bmp format.

2
src/ImageSharp/Formats/Bmp/BmpImageFormatDetector.cs

@ -3,7 +3,7 @@
using System; using System;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Detects bmp file headers /// Detects bmp file headers

2
src/ImageSharp/Formats/Bmp/BmpInfoHeader.cs

@ -1,6 +1,6 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// This block of bytes tells the application detailed information /// This block of bytes tells the application detailed information

2
src/ImageSharp/Formats/Bmp/IBmpDecoderOptions.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Image decoder options for decoding Windows bitmap streams. /// Image decoder options for decoding Windows bitmap streams.

2
src/ImageSharp/Formats/Bmp/IBmpEncoderOptions.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <summary> /// <summary>
/// Configuration options for use during bmp encoding /// Configuration options for use during bmp encoding

1
src/ImageSharp/Formats/Bmp/ImageExtensions.cs

@ -4,6 +4,7 @@
using System; using System;
using System.IO; using System.IO;
using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Bmp;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp

2
src/ImageSharp/Formats/Gif/DisposalMethod.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Provides enumeration for instructing the decoder what to do with the last image /// Provides enumeration for instructing the decoder what to do with the last image

2
src/ImageSharp/Formats/Gif/GifConfigurationModule.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the gif format. /// Registers the image encoders, decoders and mime type detectors for the gif format.

2
src/ImageSharp/Formats/Gif/GifConstants.cs

@ -4,7 +4,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Constants that define specific points within a gif. /// Constants that define specific points within a gif.

2
src/ImageSharp/Formats/Gif/GifDecoder.cs

@ -7,7 +7,7 @@ using System.IO;
using System.Text; using System.Text;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Decoder for generating an image out of a gif encoded stream. /// Decoder for generating an image out of a gif encoded stream.

5
src/ImageSharp/Formats/Gif/GifDecoderCore.cs

@ -6,10 +6,11 @@ using System.Buffers;
using System.IO; using System.IO;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives; using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Performs the gif decoding operation. /// Performs the gif decoding operation.
@ -520,7 +521,7 @@ namespace SixLabors.ImageSharp.Formats
/// </summary> /// </summary>
/// <param name="metaData">The meta data.</param> /// <param name="metaData">The meta data.</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
private void SetFrameMetaData(IMetaData metaData) private void SetFrameMetaData(IFrameMetaData metaData)
{ {
if (this.graphicsControlExtension != null) if (this.graphicsControlExtension != null)
{ {

2
src/ImageSharp/Formats/Gif/GifEncoder.cs

@ -8,7 +8,7 @@ using System.Text;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers; using SixLabors.ImageSharp.Quantizers;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Image encoder for writing image data to a stream in gif format. /// Image encoder for writing image data to a stream in gif format.

5
src/ImageSharp/Formats/Gif/GifEncoderCore.cs

@ -7,10 +7,11 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using SixLabors.ImageSharp.IO; using SixLabors.ImageSharp.IO;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers; using SixLabors.ImageSharp.Quantizers;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Performs the gif encoding operation. /// Performs the gif encoding operation.
@ -287,7 +288,7 @@ namespace SixLabors.ImageSharp.Formats
/// <param name="metaData">The metadata of the image or frame.</param> /// <param name="metaData">The metadata of the image or frame.</param>
/// <param name="writer">The stream to write to.</param> /// <param name="writer">The stream to write to.</param>
/// <param name="transparencyIndex">The index of the color in the color palette to make transparent.</param> /// <param name="transparencyIndex">The index of the color in the color palette to make transparent.</param>
private void WriteGraphicalControlExtension(IMetaData metaData, EndianBinaryWriter writer, int transparencyIndex) private void WriteGraphicalControlExtension(IFrameMetaData metaData, EndianBinaryWriter writer, int transparencyIndex)
{ {
var extension = new GifGraphicsControlExtension var extension = new GifGraphicsControlExtension
{ {

2
src/ImageSharp/Formats/Gif/GifFormat.cs

@ -3,7 +3,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the gif format. /// Registers the image encoders, decoders and mime type detectors for the gif format.

2
src/ImageSharp/Formats/Gif/GifImageFormatDetector.cs

@ -3,7 +3,7 @@
using System; using System;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Detects gif file headers /// Detects gif file headers

2
src/ImageSharp/Formats/Gif/IGifDecoderOptions.cs

@ -7,7 +7,7 @@ using System.IO;
using System.Text; using System.Text;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Decoder for generating an image out of a gif encoded stream. /// Decoder for generating an image out of a gif encoded stream.

2
src/ImageSharp/Formats/Gif/IGifEncoderOptions.cs

@ -8,7 +8,7 @@ using System.Text;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers; using SixLabors.ImageSharp.Quantizers;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// The configuration options used for encoding gifs /// The configuration options used for encoding gifs

1
src/ImageSharp/Formats/Gif/ImageExtensions.cs

@ -4,6 +4,7 @@
using System; using System;
using System.IO; using System.IO;
using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Gif;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp

2
src/ImageSharp/Formats/Gif/LzwDecoder.cs

@ -5,7 +5,7 @@ using System;
using System.Buffers; using System.Buffers;
using System.IO; using System.IO;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Decompresses and decodes data using the dynamic LZW algorithms. /// Decompresses and decodes data using the dynamic LZW algorithms.

2
src/ImageSharp/Formats/Gif/LzwEncoder.cs

@ -5,7 +5,7 @@ using System;
using System.Buffers; using System.Buffers;
using System.IO; using System.IO;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Encodes and compresses the image data using dynamic Lempel-Ziv compression. /// Encodes and compresses the image data using dynamic Lempel-Ziv compression.

2
src/ImageSharp/Formats/Gif/PackedField.cs

@ -3,7 +3,7 @@
using System; using System;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Represents a byte of data in a GIF data stream which contains a number /// Represents a byte of data in a GIF data stream which contains a number

2
src/ImageSharp/Formats/Gif/Sections/GifGraphicsControlExtension.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// The Graphic Control Extension contains parameters used when /// The Graphic Control Extension contains parameters used when

2
src/ImageSharp/Formats/Gif/Sections/GifImageDescriptor.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// Each image in the Data Stream is composed of an Image Descriptor, /// Each image in the Data Stream is composed of an Image Descriptor,

2
src/ImageSharp/Formats/Gif/Sections/GifLogicalScreenDescriptor.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Gif
{ {
/// <summary> /// <summary>
/// The Logical Screen Descriptor contains the parameters /// The Logical Screen Descriptor contains the parameters

2
src/ImageSharp/Formats/Jpeg/Common/UnzigData.cs

@ -3,7 +3,7 @@
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg.Common
{ {
/// <summary> /// <summary>
/// Holds the Jpeg UnZig array in a value/stack type. /// Holds the Jpeg UnZig array in a value/stack type.

1
src/ImageSharp/Formats/Jpeg/GolangPort/Components/Decoder/JpegBlockProcessor.cs

@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using SixLabors.ImageSharp.Formats.Jpeg.Common;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F; using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F;

1
src/ImageSharp/Formats/Jpeg/GolangPort/Components/Decoder/OldJpegScanDecoder.ComputationData.cs

@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using SixLabors.ImageSharp.Formats.Jpeg.Common;
using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F; using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F;
namespace SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Decoder namespace SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Decoder

3
src/ImageSharp/Formats/Jpeg/GolangPort/JpegEncoderCore.cs

@ -4,9 +4,12 @@
using System.Buffers; using System.Buffers;
using System.IO; using System.IO;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Formats.Jpeg.Common;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components; using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Encoder; using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Encoder;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Utils; using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Utils;
using SixLabors.ImageSharp.MetaData.Profiles.Exif;
using SixLabors.ImageSharp.MetaData.Profiles.Icc;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F; using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F;

3
src/ImageSharp/Formats/Jpeg/GolangPort/OldJpegDecoderCore.cs

@ -7,6 +7,9 @@ using System.Runtime.CompilerServices;
using System.Threading.Tasks; using System.Threading.Tasks;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Decoder; using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Decoder;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.MetaData.Profiles.Exif;
using SixLabors.ImageSharp.MetaData.Profiles.Icc;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F; using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F;

2
src/ImageSharp/Formats/Jpeg/IJpegDecoderOptions.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Image decoder for generating an image out of a jpg stream. /// Image decoder for generating an image out of a jpg stream.

2
src/ImageSharp/Formats/Jpeg/IJpegEncoderOptions.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Encoder for writing the data image to a stream in jpeg format. /// Encoder for writing the data image to a stream in jpeg format.

1
src/ImageSharp/Formats/Jpeg/ImageExtensions.cs

@ -4,6 +4,7 @@
using System; using System;
using System.IO; using System.IO;
using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp

2
src/ImageSharp/Formats/Jpeg/JpegConfigurationModule.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the jpeg format. /// Registers the image encoders, decoders and mime type detectors for the jpeg format.

2
src/ImageSharp/Formats/Jpeg/JpegDecoder.cs

@ -5,7 +5,7 @@ using System.IO;
using SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort; using SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Image decoder for generating an image out of a jpg stream. /// Image decoder for generating an image out of a jpg stream.

2
src/ImageSharp/Formats/Jpeg/JpegEncoder.cs

@ -5,7 +5,7 @@ using System.IO;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort; using SixLabors.ImageSharp.Formats.Jpeg.GolangPort;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Encoder for writing the data image to a stream in jpeg format. /// Encoder for writing the data image to a stream in jpeg format.

2
src/ImageSharp/Formats/Jpeg/JpegFormat.cs

@ -4,7 +4,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort; using SixLabors.ImageSharp.Formats.Jpeg.GolangPort;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the jpeg format. /// Registers the image encoders, decoders and mime type detectors for the jpeg format.

2
src/ImageSharp/Formats/Jpeg/JpegImageFormatDetector.cs

@ -3,7 +3,7 @@
using System; using System;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Detects Jpeg file headers /// Detects Jpeg file headers

2
src/ImageSharp/Formats/Jpeg/JpegSubsample.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Jpeg
{ {
/// <summary> /// <summary>
/// Enumerates the chroma subsampling method applied to the image. /// Enumerates the chroma subsampling method applied to the image.

3
src/ImageSharp/Formats/Jpeg/PdfJsPort/JpegDecoderCore.cs

@ -6,6 +6,9 @@ using System.IO;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components; using SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.MetaData.Profiles.Exif;
using SixLabors.ImageSharp.MetaData.Profiles.Icc;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort

2
src/ImageSharp/Formats/Png/Filters/AverageFilter.cs

@ -4,7 +4,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png.Filters
{ {
/// <summary> /// <summary>
/// The Average filter uses the average of the two neighboring pixels (left and above) to predict /// The Average filter uses the average of the two neighboring pixels (left and above) to predict

2
src/ImageSharp/Formats/Png/Filters/FilterType.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png.Filters
{ {
/// <summary> /// <summary>
/// Provides enumeration of the various PNG filter types. /// Provides enumeration of the various PNG filter types.

2
src/ImageSharp/Formats/Png/Filters/NoneFilter.cs

@ -5,7 +5,7 @@ using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png.Filters
{ {
/// <summary> /// <summary>
/// The None filter, the scanline is transmitted unmodified; it is only necessary to /// The None filter, the scanline is transmitted unmodified; it is only necessary to

2
src/ImageSharp/Formats/Png/Filters/PaethFilter.cs

@ -4,7 +4,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png.Filters
{ {
/// <summary> /// <summary>
/// The Paeth filter computes a simple linear function of the three neighboring pixels (left, above, upper left), /// The Paeth filter computes a simple linear function of the three neighboring pixels (left, above, upper left),

2
src/ImageSharp/Formats/Png/Filters/SubFilter.cs

@ -4,7 +4,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png.Filters
{ {
/// <summary> /// <summary>
/// The Sub filter transmits the difference between each byte and the value of the corresponding byte /// The Sub filter transmits the difference between each byte and the value of the corresponding byte

2
src/ImageSharp/Formats/Png/Filters/UpFilter.cs

@ -4,7 +4,7 @@
using System; using System;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png.Filters
{ {
/// <summary> /// <summary>
/// The Up filter is just like the Sub filter except that the pixel immediately above the current pixel, /// The Up filter is just like the Sub filter except that the pixel immediately above the current pixel,

2
src/ImageSharp/Formats/Png/IPngDecoderOptions.cs

@ -7,7 +7,7 @@ using System.IO;
using System.Text; using System.Text;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// The optioas for decoding png images /// The optioas for decoding png images

2
src/ImageSharp/Formats/Png/IPngEncoderOptions.cs

@ -6,7 +6,7 @@ using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers; using SixLabors.ImageSharp.Quantizers;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// The options availible for manipulating the encoder pipeline /// The options availible for manipulating the encoder pipeline

1
src/ImageSharp/Formats/Png/ImageExtensions.cs

@ -3,6 +3,7 @@
using System.IO; using System.IO;
using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp

2
src/ImageSharp/Formats/Png/PngChunk.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Stores header information about a chunk. /// Stores header information about a chunk.

2
src/ImageSharp/Formats/Png/PngChunkTypes.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Contains a list of possible chunk type identifiers. /// Contains a list of possible chunk type identifiers.

2
src/ImageSharp/Formats/Png/PngColorType.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Provides enumeration of available PNG color types. /// Provides enumeration of available PNG color types.

2
src/ImageSharp/Formats/Png/PngConfigurationModule.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the png format. /// Registers the image encoders, decoders and mime type detectors for the png format.

2
src/ImageSharp/Formats/Png/PngConstants.cs

@ -4,7 +4,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Defines png constants defined in the specification. /// Defines png constants defined in the specification.

2
src/ImageSharp/Formats/Png/PngDecoder.cs

@ -7,7 +7,7 @@ using System.IO;
using System.Text; using System.Text;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Encoder for generating an image out of a png encoded stream. /// Encoder for generating an image out of a png encoded stream.

5
src/ImageSharp/Formats/Png/PngDecoderCore.cs

@ -8,11 +8,14 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using SixLabors.ImageSharp.Formats.Png.Filters;
using SixLabors.ImageSharp.Formats.Png.Zlib;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using static SixLabors.ImageSharp.ComparableExtensions; using static SixLabors.ImageSharp.ComparableExtensions;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Performs the png decoding operation. /// Performs the png decoding operation.

2
src/ImageSharp/Formats/Png/PngEncoder.cs

@ -6,7 +6,7 @@ using System.IO;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers; using SixLabors.ImageSharp.Quantizers;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Image encoder for writing image data to a stream in png format. /// Image encoder for writing image data to a stream in png format.

4
src/ImageSharp/Formats/Png/PngEncoderCore.cs

@ -6,12 +6,14 @@ using System.Buffers;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Formats.Png.Filters;
using SixLabors.ImageSharp.Formats.Png.Zlib;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers; using SixLabors.ImageSharp.Quantizers;
using static SixLabors.ImageSharp.ComparableExtensions; using static SixLabors.ImageSharp.ComparableExtensions;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Performs the png encoding operation. /// Performs the png encoding operation.

2
src/ImageSharp/Formats/Png/PngFormat.cs

@ -3,7 +3,7 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Registers the image encoders, decoders and mime type detectors for the png format. /// Registers the image encoders, decoders and mime type detectors for the png format.

2
src/ImageSharp/Formats/Png/PngHeader.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats namespace SixLabors.ImageSharp.Formats.Png
{ {
/// <summary> /// <summary>
/// Represents the png header chunk. /// Represents the png header chunk.

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save