From 313b4d277c1c2e173ff615c0719c23ed3a192ce1 Mon Sep 17 00:00:00 2001 From: mistoll Date: Tue, 1 Oct 2024 14:55:31 +0200 Subject: [PATCH] Fix using dither in BmpEncoder when bit per pixel is <= 4 --- src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs b/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs index 85786949d8..7c92d3e463 100644 --- a/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs +++ b/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs @@ -575,7 +575,9 @@ internal sealed class BmpEncoderCore { using IQuantizer frameQuantizer = this.quantizer.CreatePixelSpecificQuantizer(configuration, new QuantizerOptions() { - MaxColors = 16 + MaxColors = 16, + Dither = this.quantizer.Options.Dither, + DitherScale = this.quantizer.Options.DitherScale }); frameQuantizer.BuildPalette(this.pixelSamplingStrategy, image); @@ -623,7 +625,9 @@ internal sealed class BmpEncoderCore { using IQuantizer frameQuantizer = this.quantizer.CreatePixelSpecificQuantizer(configuration, new QuantizerOptions() { - MaxColors = 4 + MaxColors = 4, + Dither = this.quantizer.Options.Dither, + DitherScale = this.quantizer.Options.DitherScale }); frameQuantizer.BuildPalette(this.pixelSamplingStrategy, image); @@ -680,7 +684,9 @@ internal sealed class BmpEncoderCore { using IQuantizer frameQuantizer = this.quantizer.CreatePixelSpecificQuantizer(configuration, new QuantizerOptions() { - MaxColors = 2 + MaxColors = 2, + Dither = this.quantizer.Options.Dither, + DitherScale = this.quantizer.Options.DitherScale }); frameQuantizer.BuildPalette(this.pixelSamplingStrategy, image);