Closed melnikov77 closed 1 month ago
@melnikov77 The filter method is used in the release/3.1.x
branch here.
Your test confused me given you are use null!
to define the source image.
SixLabors.ImageSharp.Image img = null!;
However, you are correct! We are not assigning the correct filter on encode, your finding actually uncovers a bug in our SIMD accelerated filtering methods where we suffered from an unsigned integer overflow defect!
Many thanks for raising this.
I've opened a PR #2775 with the fix.
Fixed with 3.1.5
Prerequisites
DEBUG
andRELEASE
modeImageSharp version
3.1.4
Other ImageSharp packages and versions
NA
Environment (Operating system, version and so on)
NA
.NET Framework version
net8
Description
When a new
PngEncoder
is created with customFilterMethod
it always produces the same file size, i.e. theFilterMethod
is being ignored.Example:
I found only one usage of this property here https://github.com/SixLabors/ImageSharp/blob/10e9c49e133c4b44b4d70220ceb8cd8f65c3bce8/src/ImageSharp/Formats/Png/PngEncoderCore.cs#L1522-L1526
i.e.
filterMethod
is assigned only ifencoder.FilterMethod
isnull
, otherwise, it is always 0 (PngFilterMethod.None
).Steps to Reproduce
Images
No response