unjs / ipx

🖼️ High performance, secure and easy-to-use image optimizer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Incorrect resize result for an image

dmitriy-nz opened this issue · comments

Environment

ipx - 2.0.2
nodejs - v18.16.1

Reproduction

Clone repo: https://github.com/dmitriy-nz/ipx-test
Install deps
Run npx ipx serve --dir ./imgs
Open url: http://localhost:3000/s_200x200,fit_inside/test.jpg - Already at this step you will get an image with an incorrect size

On the native sharp everything works as expected with the same set of parameters
Run node index.js for get the expected result via a native sharp
Check output.jpg

Describe the bug

When I try to resize a "skinny" image I get the wrong result.

Original image (30x600):
test

Call resize via ipx with parameters s_200x200,fit_inside and get wrong result (1x30):
test

I ran the resize with the same parameters through native sharp and everything works as expected (10x200):
output

Additional context

No response

Logs

No response

Tracked the issue to this clampDimensionsPreservingAspectRatio fn call. Sharp seems to handle this correctly now, as works as expected when those lines are commented out. I'd question wether this manual patching still needed.