tannerhelland / PhotoDemon

A free portable photo editor focused on pro-grade features, high performance, and maximum usability.
https://photodemon.org
Other
1.36k stars 200 forks source link

[Feature request] - Please add support for opening and saving JPEG XL files #433

Closed ZPNRG closed 6 months ago

ZPNRG commented 2 years ago

Is this feature request related to a problem?

No, other than not being able to save to the new JPEG XL format.

tannerhelland commented 2 years ago

Thank you for filing this issue, @ZPNRG ! JPEG-XL support is underway and I hope to have it available soon in nightly builds.

ZPNRG commented 1 year ago

@tannerhelland My understanding is that vcpkg has not yet updated to the libjxl 0.7.0 library, but is in process. It sounds like that will be a big step towards really making support for JPEG XL files on a solid foundation.

I am not as interested in the importing ability for PhotoDemon as I am in the ability to export/save to the JPEG XL format from PhotoDemon, but I know you'll get there. Thank you very much for the work adding full JPEG XL support to PhotoDemon.

tannerhelland commented 1 year ago

Thank you for the follow-up, @ZPNRG . Thankfully, all JPEG-XL support in PhotoDemon is being tested against v 0.7.0. (The latest nightly builds hopefully reflect this in the Tools > 3rd-party libraries window.)

The good thing about using v0.7.0? All the latest-and-greatest JPEG XL features are available, yay!

The bad thing about 0.7.0? Documentation on the newest features is still very limited, and some JPEG XL test files no longer work as expected - or at all. (This is complicating my job and making things take longer than expected, but I'm making slow and steady progress despite it.)

I honestly didn't expect this feature to take so long, but I should have known better 😆 Export support is coming along and will hopefully be available... soon-ish. Thank you for your kindness and patience 🙏

tannerhelland commented 1 year ago

Just a quick update to note that JPEG-XL support is now (mostly) working in a separate branch. I am currently working on live previews of quality settings in the expor tdialog, and after that I should be able to merge the new export feature into PhotoDemon nightly builds.

Thank you for your patience. ❤️ This has been a very challenging task, with many unforeseen issues with libjxl (v0.7.0 is extremely buggy with a lot of unexpected crashes, and working around these has taken the bulk of my time). I expect PhotoDemon's final JPEG-XL implementation to be very robust, at least!

ZPNRG commented 1 year ago

@tannerhelland, just wanted to let you know that I've been testing and using JPEG-XL (JXL) saving capability/export in the last 4 or 5 Nightly builds of PhotoDemon and I've seen it steadily getting better and more stable. I've tested PD with various size files all the way from 200KB up to 100MB files. Keep up the great work.

tannerhelland commented 1 year ago

Thank you so much for the kind feedback, @ZPNRG! I really appreciate it.

I would also like to support animated JPEG-XL files, but I'm taking a little break from JXL work to focus on a few other PhotoDemon issues. I will leave this issue open until I can return and get animated JXL files working too.

ZPNRG commented 1 year ago

@tannerhelland No problem. The 12-24-2022 and 01-05-2023 builds seem to be a bit more unstable. They crash a lot for me when trying to save large TIF files (75 MB - 120MB) to JPEG-XL files. The builds had seemed better, but maybe other instabilities were introduced. ???

ZPNRG commented 1 year ago

@tannerhelland Just letting you know that libjxl v0.8.0 library was released a couple of weeks ago in case you didn't realize. See https://github.com/libjxl/libjxl/releases

tannerhelland commented 6 months ago

PhotoDemon's current implementation of JPEG XL support is discussed in more detail in #517. I will copy my last comment from that thread below, then close this issue (for now - additional feedback is always welcome!)

PhotoDemon nightly builds now support the latest libjxl (0.10.0, released two days ago). I have also added support for auto-updating libjxl binaries independent of PhotoDemon itself, so even after downloading libjxl for the first time, the program can continue to grab library updates as they become available.

With this, I think JPEG XL support is about as comprehensive as I can get it. If anyone encounters JPEG XL trouble, please feel free to comment here or open a new issue.

Thank you again to everyone for their help on this topic!