Skip to content

JPEG XL support #4247

Open
Open

Description

@DonaldTsang

See https://jpeg.org/jpegxl/ since JPEG-XL is coming out in a few months
Also https://google.github.io/brunsli has a sample app
Co-referencing https://ai.google/research/pubs/pub48554
and https://www.iso.org/standard/77977.html

Activity

  1. DonaldTsang commented on Dec 4, 2019

    @DonaldTsang
    Author

    https://github.com/google/brunsli claims that Python is already supported.

  2. varnav commented on Dec 31, 2020

    @varnav

    JPEG XL format was recently frozen

  3. DonaldTsang commented on Jan 3, 2021

    @DonaldTsang
    Author

    @varnav so it has been standarized and passed through, correct?

  4. varnav commented on Jan 3, 2021

    @varnav

    ISO/IEC DIS 18181-1 is not completely done with being a standard. But this means format will not change anymore. I think it's a good time to start implementing it.

  5. doublex commented on May 11, 2021

    @doublex
  6. olokelo commented on Jul 7, 2021

    @olokelo

    Hello, I wrote a Pillow plugin for Jpeg XL.
    It's included in my Python module jxlpy which is based on Christoph Gohlke's project :)
    I think it might be useful in this issue.

  7. doublex commented on Jul 7, 2021

    @doublex

    @olokelo
    Great news!

  8. brunoais commented on Dec 25, 2022

    @brunoais

    Hello!
    Is there anything missing to move this from the icebox to the backlog?

  9. aclark4life commented on Dec 25, 2022

    @aclark4life
    Member

    @brunoais Looks like we can now tentatively declare support via @olokelo 's plugin? (Thank you @olokelo !)

  10. Joshix-1 commented on Dec 29, 2022

    @Joshix-1

    the plugin had no release since over a year. There are multiple issues from people that are unable to install it

    I would appreciate built-in support

  11. doublex commented on Jan 2, 2023

    @doublex
  12. Joshix-1 commented on Jan 2, 2023

    @Joshix-1

    If everyone supports it Googles arguments get even more invalid, and maybe they will re-add support. We can't let Google dictate what becomes standard.
    There's already lots of software with JpegXL support.

  13. brunoais commented on Jan 2, 2023

    @brunoais

    JXL is probably dead: https://bugs.chromium.org/p/chromium/issues/detail?id=1178058#c84

    You say that but most images on my PC are already .jxl and just not all of them because some python software I use is waiting for Pillow to support JXL so they also support it.

  14. 1 remaining item

  15. radarhere commented on May 6, 2023

    @radarhere
    Member

    The same thing that is holding back every new feature - time. While Tidelift is generous, Pillow is worked on in our spare time, and complex functionality is often sidelined while dealing with the deluge of other issues and PRs that are created.

    Ideally, a PR with clear reference to documentation, and dependencies that fit within our license.

  16. schrmh commented on Jun 6, 2023

    @schrmh

    Small update: iOS 17 has JPEG XL support. Works in Safari and Photos app and reportedly (some?) third party apps.
    I hope this serves as a lesson for everybody to just keep on promoting the sane standards until they get adoption and to not give up just because a major player doesn't want to support something (yet). Especially if their proposed alternatives are just worse in most areas.

    By the way, imlib2 is another library used by a lot of programs that has read and write JXL support (got the author to add the latter by opening an issue).

    If I weren't already busy with a bunch of other projects I would gladly try to help on the software side of widely used imaging libraries to make adoption happen quicker.
    However, maybe this comment can help at making an enthusiastic developer work on JPEG XL support for pillow.

  17. rspeed commented on Jul 19, 2023

    @rspeed

    iOS 17 has JPEG XL support

    macOS 14 as well.

  18. changed the title [-]Preparation for JPEG XL support[/-] [+]JPEG XL support[/+] on Sep 2, 2023
  19. j99ca commented on Nov 6, 2023

    @j99ca

    Is there any progress on this feature? I noticed this library popped up in pypi

  20. schrmh commented on Nov 6, 2023

    @schrmh

    @Isotr0py is here on GitHub as well as it seems, as well as their project: https://github.com/Isotr0py/pillow-jpegxl-plugin
    However, it looks like this uses Rust bindings and it doesn't look like the Pillow repo has Rust code as of now.

    Maybe they still can do this

    PR with clear reference to documentation, and dependencies that fit within [Pillow's] license.

  21. olokelo commented on Mar 2, 2024

    @olokelo

    Hello again, for anyone interested please observe PR #7848 that enables read only support of JPEG XL images.

  22. EwoutH commented on Oct 12, 2026

    @EwoutH

    Both Chrome and Firefox now support JPEG-XL. That means there's a huge new audience that can benefit from JPEG-XL images. It would be great if Pillow also could support it natively.

  23. hugovk commented on Oct 12, 2026

    @hugovk
    Member

    We had a PR open to add this but it made the wheels around 50% larger, which is unfortunately too much. See #7848 (comment). I made some suggestions at #9101 (comment), but no-one showed interest. Still open to other options, and there are at least three Pillow plugins available on PyPI.

  24. EwoutH commented on Oct 19, 2026

    @EwoutH

    There are now multiple efforts to move JPEG-XL support further along.

    I think it’s important maintainers either give A) some direction how they want to approach JPEG-XL support or B) what additional information they need to make that decision.

  25. aclark4life commented on Oct 19, 2026

    @aclark4life
    Member

    31. I think it’s important maintainers either give A) some direction how they want to approach JPEG-XL support or B) what additional information they need to make that decision.

    I don't think any of the wheel-shrinking efforts have resulted in "zero increase" which is about what we'd need to make JPEG-XL support in Pillow feasible, IIUC. The second best option is probably a pillow-jpegxl plugin which I think already exists ?

    I'm not opposed to taking ownership of something like a pillow-jpegxl plugin in the Pillow organization, but it's not likely to happen with "4 underpaid volunteers" doing all the work.

  26. crackwitz commented on Oct 19, 2026

    @crackwitz

    I'm a lurker.

    Have any of you considered delegating the read-write duties to imageio?

  27. aclark4life commented on Oct 19, 2026

    @aclark4life
    Member

    31. I'm a lurker.
    Have any of you considered delegating the read-write duties to imageio?

    Delegating to imageio won't work because imageio has no image codecs of its own. It wraps other libraries, and its main backend for ordinary image formats is Pillow itself (imageio.plugins.pillow). Any JPEG XL support it has would also come from someone else's binding to libjxl. If Pillow delegated to imageio, imageio would mostly be handing the work back to Pillow or to a third-party plugin.

  28. crackwitz commented on Oct 19, 2026

    @crackwitz

    Delegating to imageio won't work because imageio has no image codecs of its own.[...] If Pillow delegated to imageio, imageio would mostly be handing the work back to Pillow or to a third-party plugin.

    I am surprised and shocked. Thanks for making me aware of this. I was aware that it delegates to some third party libraries (e.g. PyAV for video) but did assume that it had some capability of its own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions