Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@andrews05
Copy link
Collaborator

@andrews05 andrews05 commented Dec 10, 2025

There was a small crack in the fast evaluation logic where a phase 2 candidate's IDAT could be compressed below the best size from phase 1, but the estimated output size (which includes chunks like PLTE) was above. This candidate could end up getting returned from the evaluator if no other filter actually did compress better, and would then be used for the final compression even though the phase 1 candidate was actually better.

The issue could potentially affect small, indexed images in --fast mode (o2 and below).

Fixes #753.

@ace-dent
Copy link

ace-dent commented Dec 10, 2025

Thanks @andrews05 for the fast response. Just testing the CI binary now. 🙏

Update: LGTM; from my limited testing- this is a win!! Thanks again! ✨

Copy link
Member

@AlexTMjugador AlexTMjugador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the PR, it looks good to me!

@AlexTMjugador AlexTMjugador merged commit fa2c690 into oxipng:master Dec 17, 2025
11 checks passed
@andrews05 andrews05 deleted the max-size branch December 19, 2025 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Possible regression with Brute filter

3 participants