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 SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Jpeg;
namespace ChangeDefaultEncoderOptions
{

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

@ -1,11 +1,12 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Drawing
namespace SixLabors.ImageSharp.Drawing.Brushes
{
/// <summary>
/// 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.
using System;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats;

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

@ -3,6 +3,7 @@
using System;
using System.Numerics;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory;
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.PixelFormats;
namespace SixLabors.ImageSharp.Drawing.Processors
namespace SixLabors.ImageSharp.Drawing.Brushes.Processors
{
/// <summary>
/// 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.Numerics;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Drawing.Processors;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats;

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

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

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

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

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

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Drawing.Brushes;
using SixLabors.ImageSharp.PixelFormats;
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(
minY,
maxY,
this.ParallelOptions,
source.Configuration.ParallelOptions,
y =>
{
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.Threading.Tasks;
using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.Drawing.Brushes;
using SixLabors.ImageSharp.Drawing.Brushes.Processors;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
@ -77,7 +79,7 @@ namespace SixLabors.ImageSharp.Drawing.Processors
Parallel.For(
minY,
maxY,
this.ParallelOptions,
source.Configuration.ParallelOptions,
y =>
{
int offsetY = y - startY;

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

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

2
src/ImageSharp/ColorSpaces/IAlmostEquatable.cs

@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// </summary>
/// <typeparam name="TPixel">The type of objects to compare.</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>
{
/// <summary>

2
src/ImageSharp/ColorSpaces/IColorVector.cs

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

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

@ -4,12 +4,12 @@
using System;
using System.Collections.Generic;
namespace SixLabors.ImageSharp
namespace SixLabors.ImageSharp.Common
{
/// <summary>
/// Encapsulates a series of time saving extension methods to the <see cref="T:System.Collections.IEnumerable"/> interface.
/// </summary>
public static class EnumerableExtensions
internal static class EnumerableExtensions
{
/// <summary>
/// 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.Threading.Tasks;
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;
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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Atkinson image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class Atkinson : ErrorDiffuser
public sealed class AtkinsonDiffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="Atkinson"/> class.
/// Initializes a new instance of the <see cref="AtkinsonDiffuser"/> class.
/// </summary>
public Atkinson()
public AtkinsonDiffuser()
: 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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Burks image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class Burks : ErrorDiffuser
public sealed class BurksDiffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="Burks"/> class.
/// Initializes a new instance of the <see cref="BurksDiffuser"/> class.
/// </summary>
public Burks()
public BurksDiffuser()
: 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.PixelFormats;
namespace SixLabors.ImageSharp.Dithering
namespace SixLabors.ImageSharp.Dithering.Base
{
/// <summary>
/// The base class for performing error diffusion based dithering.
/// </summary>
public abstract class ErrorDiffuser : IErrorDiffuser
public abstract class ErrorDiffuserBase : IErrorDiffuser
{
/// <summary>
/// The vector to perform division.
@ -40,11 +40,11 @@ namespace SixLabors.ImageSharp.Dithering
private readonly Fast2DArray<float> matrix;
/// <summary>
/// Initializes a new instance of the <see cref="ErrorDiffuser"/> class.
/// Initializes a new instance of the <see cref="ErrorDiffuserBase"/> class.
/// </summary>
/// <param name="matrix">The dithering matrix.</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.MustBeGreaterThan(divisor, 0, nameof(divisor));
@ -69,15 +69,15 @@ namespace SixLabors.ImageSharp.Dithering
/// <inheritdoc />
[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>
{
this.Dither(pixels, source, transformed, x, y, width, height, true);
this.Dither(pixels, source, transformed, x, y, minX, minY, maxX, maxY, true);
}
/// <inheritdoc />
[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>
{
if (replacePixel)
@ -93,7 +93,7 @@ namespace SixLabors.ImageSharp.Dithering
for (int row = 0; row < this.matrixHeight; row++)
{
int matrixY = y + row;
if (matrixY > 0 && matrixY < height)
if (matrixY > minY && matrixY < maxY)
{
Span<TPixel> rowSpan = image.GetRowSpan(matrixY);
@ -101,7 +101,7 @@ namespace SixLabors.ImageSharp.Dithering
{
int matrixX = x + (col - this.startingOffset);
if (matrixX > 0 && matrixX < width)
if (matrixX > minX && matrixX < maxX)
{
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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Floyd–Steinberg image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class FloydSteinberg : ErrorDiffuser
public sealed class FloydSteinbergDiffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="FloydSteinberg"/> class.
/// Initializes a new instance of the <see cref="FloydSteinbergDiffuser"/> class.
/// </summary>
public FloydSteinberg()
public FloydSteinbergDiffuser()
: 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="x">The column index.</param>
/// <param name="y">The row index.</param>
/// <param name="width">The image width.</param>
/// <param name="height">The image height.</param>
/// <param name="minX">The minimum column value.</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>
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>;
/// <summary>
@ -32,14 +34,16 @@ namespace SixLabors.ImageSharp.Dithering
/// <param name="transformed">The transformed pixel</param>
/// <param name="x">The column index.</param>
/// <param name="y">The row index.</param>
/// <param name="width">The image width.</param>
/// <param name="height">The image height.</param>
/// <param name="minX">The minimum column value.</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">
/// 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.
/// </param>
/// <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>;
}
}

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

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the JarvisJudiceNinke image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class JarvisJudiceNinke : ErrorDiffuser
public sealed class JarvisJudiceNinkeDiffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="JarvisJudiceNinke"/> class.
/// Initializes a new instance of the <see cref="JarvisJudiceNinkeDiffuser"/> class.
/// </summary>
public JarvisJudiceNinke()
public JarvisJudiceNinkeDiffuser()
: 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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Sierra2 image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class Sierra2 : ErrorDiffuser
public sealed class Sierra2Diffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="Sierra2"/> class.
/// Initializes a new instance of the <see cref="Sierra2Diffuser"/> class.
/// </summary>
public Sierra2()
public Sierra2Diffuser()
: 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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Sierra3 image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class Sierra3 : ErrorDiffuser
public sealed class Sierra3Diffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="Sierra3"/> class.
/// Initializes a new instance of the <see cref="Sierra3Diffuser"/> class.
/// </summary>
public Sierra3()
public Sierra3Diffuser()
: 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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the SierraLite image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class SierraLite : ErrorDiffuser
public sealed class SierraLiteDiffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -22,9 +23,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="SierraLite"/> class.
/// Initializes a new instance of the <see cref="SierraLiteDiffuser"/> class.
/// </summary>
public SierraLite()
public SierraLiteDiffuser()
: 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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering
@ -9,7 +10,7 @@ namespace SixLabors.ImageSharp.Dithering
/// Applies error diffusion based dithering using the Stucki image dithering algorithm.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class Stucki : ErrorDiffuser
public sealed class StuckiDiffuser : ErrorDiffuserBase
{
/// <summary>
/// The diffusion matrix
@ -23,9 +24,9 @@ namespace SixLabors.ImageSharp.Dithering
};
/// <summary>
/// Initializes a new instance of the <see cref="Stucki"/> class.
/// Initializes a new instance of the <see cref="StuckiDiffuser"/> class.
/// </summary>
public Stucki()
public StuckiDiffuser()
: 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.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering.Ordered
namespace SixLabors.ImageSharp.Dithering
{
/// <summary>
/// Applies error diffusion based dithering using the 4x4 Bayer dithering matrix.
/// <see href="http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT"/>
/// </summary>
public sealed class Bayer : OrderedDither4x4
public sealed class BayerDither : OrderedDitherBase
{
/// <summary>
/// The threshold matrix.
@ -25,9 +26,9 @@ namespace SixLabors.ImageSharp.Dithering.Ordered
};
/// <summary>
/// Initializes a new instance of the <see cref="Bayer"/> class.
/// Initializes a new instance of the <see cref="BayerDither"/> class.
/// </summary>
public Bayer()
public BayerDither()
: 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="x">The column 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>
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>;
}
}

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

@ -1,15 +1,16 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Dithering.Base;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Dithering.Ordered
namespace SixLabors.ImageSharp.Dithering
{
/// <summary>
/// Applies error diffusion based dithering using the 4x4 ordered dithering matrix.
/// <see href="https://en.wikipedia.org/wiki/Ordered_dithering"/>
/// </summary>
public sealed class Ordered : OrderedDither4x4
public sealed class OrderedDither : OrderedDitherBase
{
/// <summary>
/// The threshold matrix.
@ -25,9 +26,9 @@ namespace SixLabors.ImageSharp.Dithering.Ordered
};
/// <summary>
/// Initializes a new instance of the <see cref="Ordered"/> class.
/// Initializes a new instance of the <see cref="OrderedDither"/> class.
/// </summary>
public Ordered()
public OrderedDither()
: 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.PixelFormats;
namespace SixLabors.ImageSharp.Dithering.Ordered
namespace SixLabors.ImageSharp.Dithering.Base
{
/// <summary>
/// The base class for performing ordered ditheroing using a 4x4 matrix.
/// </summary>
public abstract class OrderedDither4x4 : IOrderedDither
public abstract class OrderedDitherBase : IOrderedDither
{
/// <summary>
/// The dithering matrix
@ -17,16 +17,16 @@ namespace SixLabors.ImageSharp.Dithering.Ordered
private Fast2DArray<byte> matrix;
/// <summary>
/// Initializes a new instance of the <see cref="OrderedDither4x4"/> class.
/// Initializes a new instance of the <see cref="OrderedDitherBase"/> class.
/// </summary>
/// <param name="matrix">The thresholding matrix. </param>
internal OrderedDither4x4(Fast2DArray<byte> matrix)
internal OrderedDitherBase(Fast2DArray<byte> matrix)
{
this.matrix = matrix;
}
/// <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>
{
// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// Defines constants relating to BMPs

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

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// Performs the bmp decoding operation.
@ -120,11 +120,11 @@ namespace SixLabors.ImageSharp.Formats
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(
$"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);

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

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.IO;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// Stores general information about the Bitmap file.

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

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

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

@ -1,6 +1,6 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Bmp
{
/// <summary>
/// Configuration options for use during bmp encoding

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

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

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

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.Text;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.Runtime.CompilerServices;
using System.Text;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// Performs the gif decoding operation.
@ -520,7 +521,7 @@ namespace SixLabors.ImageSharp.Formats
/// </summary>
/// <param name="metaData">The meta data.</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private void SetFrameMetaData(IMetaData metaData)
private void SetFrameMetaData(IFrameMetaData metaData)
{
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.Quantizers;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.Text;
using SixLabors.ImageSharp.IO;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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="writer">The stream to write to.</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
{

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

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

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

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

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

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

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

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

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

@ -3,7 +3,7 @@
using System;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Gif
{
/// <summary>
/// The Logical Screen Descriptor contains the parameters

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

@ -3,7 +3,7 @@
using System;
using System.Runtime.InteropServices;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg.Common
{
/// <summary>
/// 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.
using System.Runtime.InteropServices;
using SixLabors.ImageSharp.Formats.Jpeg.Common;
using SixLabors.ImageSharp.Memory;
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.
using System.Runtime.InteropServices;
using SixLabors.ImageSharp.Formats.Jpeg.Common;
using Block8x8F = SixLabors.ImageSharp.Formats.Jpeg.Common.Block8x8F;
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.IO;
using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Formats.Jpeg.Common;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Encoder;
using SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Utils;
using SixLabors.ImageSharp.MetaData.Profiles.Exif;
using SixLabors.ImageSharp.MetaData.Profiles.Icc;
using SixLabors.ImageSharp.PixelFormats;
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 SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Decoder;
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 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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.IO;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp

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

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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 SixLabors.ImageSharp.Formats.Jpeg.GolangPort;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// Detects Jpeg file headers

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

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Jpeg
{
/// <summary>
/// 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 SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.MetaData.Profiles.Exif;
using SixLabors.ImageSharp.MetaData.Profiles.Icc;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort

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

@ -4,7 +4,7 @@
using System;
using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png.Filters
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png.Filters
{
/// <summary>
/// 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 SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png.Filters
{
/// <summary>
/// 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.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png.Filters
{
/// <summary>
/// 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.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png.Filters
{
/// <summary>
/// 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.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png.Filters
{
/// <summary>
/// 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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.Quantizers;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// The options availible for manipulating the encoder pipeline

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

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

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

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

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

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

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

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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.Text;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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 SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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.Runtime.CompilerServices;
using System.Text;
using SixLabors.ImageSharp.Formats.Png.Filters;
using SixLabors.ImageSharp.Formats.Png.Zlib;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats;
using static SixLabors.ImageSharp.ComparableExtensions;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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.Quantizers;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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.Linq;
using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Formats.Png.Filters;
using SixLabors.ImageSharp.Formats.Png.Zlib;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Quantizers;
using static SixLabors.ImageSharp.ComparableExtensions;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// Performs the png encoding operation.

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

@ -3,7 +3,7 @@
using System.Collections.Generic;
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// 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.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Formats
namespace SixLabors.ImageSharp.Formats.Png
{
/// <summary>
/// Represents the png header chunk.

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

Loading…
Cancel
Save