diff --git a/src/ImageSharp/Quantizers/OctreeQuantizer{TPixel}.cs b/src/ImageSharp/Quantizers/OctreeQuantizer{TPixel}.cs index 1cd0020ba..dc65442bb 100644 --- a/src/ImageSharp/Quantizers/OctreeQuantizer{TPixel}.cs +++ b/src/ImageSharp/Quantizers/OctreeQuantizer{TPixel}.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Quantizers.Base; namespace SixLabors.ImageSharp.Quantizers { @@ -13,7 +14,7 @@ namespace SixLabors.ImageSharp.Quantizers /// /// /// The pixel format. - public sealed class OctreeQuantizer : Quantizer + public sealed class OctreeQuantizer : QuantizerBase where TPixel : struct, IPixel { /// diff --git a/src/ImageSharp/Quantizers/PaletteQuantizer{TPixel}.cs b/src/ImageSharp/Quantizers/PaletteQuantizer{TPixel}.cs index 985994dce..b03e690e4 100644 --- a/src/ImageSharp/Quantizers/PaletteQuantizer{TPixel}.cs +++ b/src/ImageSharp/Quantizers/PaletteQuantizer{TPixel}.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Quantizers.Base; namespace SixLabors.ImageSharp.Quantizers { @@ -13,7 +14,7 @@ namespace SixLabors.ImageSharp.Quantizers /// /// /// The pixel format. - public sealed class PaletteQuantizer : Quantizer + public sealed class PaletteQuantizer : QuantizerBase where TPixel : struct, IPixel { /// diff --git a/src/ImageSharp/Quantizers/Quantizer{TPixel}.cs b/src/ImageSharp/Quantizers/QuantizerBase{TPixel}.cs similarity index 97% rename from src/ImageSharp/Quantizers/Quantizer{TPixel}.cs rename to src/ImageSharp/Quantizers/QuantizerBase{TPixel}.cs index 553fc9aef..2bd726792 100644 --- a/src/ImageSharp/Quantizers/Quantizer{TPixel}.cs +++ b/src/ImageSharp/Quantizers/QuantizerBase{TPixel}.cs @@ -8,13 +8,13 @@ using System.Runtime.CompilerServices; using SixLabors.ImageSharp.Dithering; using SixLabors.ImageSharp.PixelFormats; -namespace SixLabors.ImageSharp.Quantizers +namespace SixLabors.ImageSharp.Quantizers.Base { /// /// Encapsulates methods to calculate the color palette of an image. /// /// The pixel format. - public abstract class Quantizer : IQuantizer + public abstract class QuantizerBase : IQuantizer where TPixel : struct, IPixel { /// @@ -23,7 +23,7 @@ namespace SixLabors.ImageSharp.Quantizers private readonly bool singlePass; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// /// If true, the quantization only needs to loop through the source pixels once @@ -33,7 +33,7 @@ namespace SixLabors.ImageSharp.Quantizers /// only call the 'QuantizeImage' function. If two passes are required, the code will call 'InitialQuantizeImage' /// and then 'QuantizeImage'. /// - protected Quantizer(bool singlePass) + protected QuantizerBase(bool singlePass) { this.singlePass = singlePass; } diff --git a/src/ImageSharp/Quantizers/WuQuantizer{TPixel}.cs b/src/ImageSharp/Quantizers/WuQuantizer{TPixel}.cs index 790097b7b..79319cfbd 100644 --- a/src/ImageSharp/Quantizers/WuQuantizer{TPixel}.cs +++ b/src/ImageSharp/Quantizers/WuQuantizer{TPixel}.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Numerics; using System.Runtime.CompilerServices; using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Quantizers.Base; namespace SixLabors.ImageSharp.Quantizers { @@ -30,7 +31,7 @@ namespace SixLabors.ImageSharp.Quantizers /// /// /// The pixel format. - public class WuQuantizer : Quantizer + public class WuQuantizer : QuantizerBase where TPixel : struct, IPixel { /// diff --git a/tests/ImageSharp.Benchmarks/Image/EncodePng.cs b/tests/ImageSharp.Benchmarks/Image/EncodePng.cs index 0401132fc..1ec8d03ef 100644 --- a/tests/ImageSharp.Benchmarks/Image/EncodePng.cs +++ b/tests/ImageSharp.Benchmarks/Image/EncodePng.cs @@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.Benchmarks.Image using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Quantizers; - + using SixLabors.ImageSharp.Quantizers.Base; using CoreImage = ImageSharp.Image; public class EncodePng : BenchmarkBase @@ -66,8 +66,8 @@ namespace SixLabors.ImageSharp.Benchmarks.Image { using (MemoryStream memoryStream = new MemoryStream()) { - Quantizer quantizer = this.UseOctreeQuantizer - ? (Quantizer) + QuantizerBase quantizer = this.UseOctreeQuantizer + ? (QuantizerBase) new OctreeQuantizer() : new PaletteQuantizer();