-
-
Notifications
You must be signed in to change notification settings - Fork 851
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BmpEncoder does not respect QuantizerOptions.Dither when BitsPerPixel is 1, 2 or 4 #2817
Open
4 tasks done
Labels
Comments
Thanks for the detail here and analysis. It's very much appreciated! The correct approach would be to do the following all places where we require new options. using IQuantizer<TPixel> frameQuantizer = this.quantizer.CreatePixelSpecificQuantizer<TPixel>(configuration, new QuantizerOptions()
{
MaxColors = 2, // Use correct value for each method
Dither = this.quantizer.Options.Dither,
DitherScale = this.quantizer.Options.DitherScale
});
If you could submit a PR that would be really great. |
This was referenced Oct 1, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Prerequisites
DEBUG
andRELEASE
modeImageSharp version
3.1.5
Other ImageSharp packages and versions
None
Environment (Operating system, version and so on)
Win 11
.NET Framework version
.net 8
Description
When writing 1-bit (or 2, 4) files using BmpEncoder, the dither settings are not respected.
That is, because in
ImageSharp/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs
Lines 681 to 684 in 5c28129
the QuantizerOptions is replaced with new QuanitzerOptions, which does not include the inital Dither values. Similar code is in Write2BitPixelData and Write4BitPixelData.
I'd write a pull request, but I don't know how you want to handle that. Like modify the original options, create a full clone opt the original options, remove the new options completely, or whatever you come up with.
Steps to Reproduce
The result is a image with dithering (example created from car.bmp from test images)
Images
No response
The text was updated successfully, but these errors were encountered: