Conversation
for more information, see https://pre-commit.ci
|
May you please commit the images as LFS? |
|
Do you mean those |
|
They already setup lfs and they only use for other larger stuff. Let it stay as you did. |
Removed jxl feature
for more information, see https://pre-commit.ci
|
Mac OS builds were failing because clang complained about goto labels being declared before variables in scope. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
b266143 to
902929f
Compare
This seems like too much. I know we have fewer wheels right now, but it will soon increase for 3.15+3.15t, and a ~37% increase is a lot. And it will be paid by everyone, including those not using JPEG XL. I think we should consider some of the suggestions I made at #9101 (comment). |
I think that's a very worthwhile initiative, though IMO that should be pursued independently; IOW, I wouldn't like to see jpegxl support held up over this. |
We can try to decide on and implement some alternative to "including in the wheel" prior to the next release. |
The thing is, the current size increase is a blocker for me. |
|
We've added some tooling (#9621) to show the size increase of wheels compared to the last release. This PR makes the total wheel size 46.83% bigger, with some individual wheels 89% bigger. Dist size comparison vs Pillow 12.2.0 on PyPI
https://github.com/python-pillow/Pillow/actions/runs/25698618068/attempts/3#summary-75485821427 |
|
Curious what the blockers for this PR are at this point? Both Chrome and Firefox are going to enable JXL support by default (no longer behind a flag) at the end of this month: https://chromium-review.googlesource.com/c/chromium/src/+/8279712 https://bsky.app/profile/webdevs.firefox.com/post/3mttaddub7f2u |
|
|
It's good to hear major browsers are including it by default. The main blocker (for me) is this PR makes wheels around 50% bigger, and some nearly twice the size (#7848 (comment), #7848 (comment)), which I think is too expensive to be paid for everyone right now, especially given how many wheels we produce, and that we hit the PyPI quota limit recently when adding AVIF without paying attention to the added size cost. As mentioned, see #9101 (comment) for some suggestions I made, but there wasn't much interest in those. Happy to continue with any of those. I plan to close this if no other suggestions come up to reduce wheel size. Sorry it's been open for so long, I appreciate all the work that went into this PR - thank you @olokelo and @radarhere. We (or at least I) only paid attention to size cost after the previous problems. JPEG XL support is available via the plugin that influenced this PR: And there's at least two more plugins: |

Helps #4247
This PR enables opening and reading JPEG XL images and animations.
Supported image modes are: RGB, RGBA, RGBa, L, LA, La.
A relatively recent libjxl version is needed to compile Pillow with libjxl support.
The main changes are the addition of
_jxl.candJxlImagePlugin.py.I'm also the author of jxlpy so this PR was influenced by the work of contributors there. This PR is also largely based on
WebPImagePlugin.pywhich had similar implementation.Why?
JPEG XL has recently seen increased adoption especially in Apple ecosystem. A lot of users are requesting Pillow support for JPEG XL as their products use Pillow and need to be able to handle
jxlfiles.I'm open to suggestions and comments. I understand such change would need a lot of testing and probably changes. After all Pillow would need to become somewhat dependent on libjxl. Creating documentation will not be a big problem however I decided to wait for feedback from Pillow core developers.