-
Notifications
You must be signed in to change notification settings - Fork 382
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
add JPEG XL support via pillow-jpegxl-plugin #344
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I dont know the image format, but the implementation looks correct.
Just keep in mind that pillow plugins and pillow itself needs to be lifted to newer versions when 3.13 support is in the works.
Just as a note, jxlpy may be a better choice, as it uses direct bindings to libjxl and has an MIT license. At the same time, the pillow-jpegxl-plugin seems to be doing a python->rust->libjxl binding through jpegxl-rs, which has GPL-3.0 license. |
@EugeneVert i went with pillow-jpegxl-plugin because jxlpy claims: 'This project is still in alpha stages and needs testing. It may contain bugs!'. and it says support status for the pillow plugin is 'Partial' so i don't know how well it works |
From what I understand, pillow-jpegxl-plugin presents itself as having an MIT license despite using bindings from jpegxl-rs which is under GPL-3: meaning that (as far as I understand license-wise) that pillow-jpegxl-plugin can't really be distributed under MIT. Furthermore, jxlpy which also presents itself as MIT and uses bindings from libjxl which in turn is licensed under BSD-3: an equally incompatible license with MIT. What does this mean for this project though? Well since TagStudio uses GPL-3, it's compatible with GPL-3 and BSD-3 regardless. It's just worth it to note that these libraries may update their licenses at some point to comply with the libraries they use, and that neither may truly be "MIT". |
@CyanVoxel there are also jpeg xls on https://jpegxl.info/test-page/. also can you send me the image you found a discrepancy in with to test it. |
The author of jxlpy has a PR adding JPEG-XL support to Pillow itself that hopefully will be merged at some point. We're waiting for that for hydrus as at least last time I tried using either of these plugins they weren't really working, though perhaps that has changed seeing as it seems to be working somewhat here. |
@floogulinc the plugin i used for this PR seems to work fine with images i converted using |
…nd partially port #357) (#549) * feat: add JXL image thumbnail support Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> * feat: add animated previews for webp and apng Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> --------- Co-authored-by: BPplays <58504799+bpplays@users.noreply.github.com>
this PR adds JPEG XL support via a pillow plugin pillow-jpegxl-plugin.
I've tested on JPEG XL images made with libjxl
cjxl
and it seems to work fine
this closes #333