Skip to content

[FEATURE] Add support for JPEG-XL

Amy spark requested to merge lsegovia/krita:work/amyspark/jpeg-xl-2 into master

This includes the following:

  • Support for RGB, Gray and CMYK U8/U16 and F16/32
    • FP depends on OpenEXR available
  • Support for animated JXLs r/w
  • Support for Exif, IPTC and XMP metadata r/w

Please note that:

  • As JXL is single-layer, the export will use the document projection-- individual layers will be lost. This is marked with the relevant support check.

Test Plan

Build Krita. Create some files, export them as JXL, and import them back. Also try opening them in Firefox Nightly with the "Multimedia: JPEG-XL" experiment enabled.

If you know of a JXL viewer than can support animations, test that animations load successfully.

Formalities Checklist

  • I confirmed this builds.
  • I confirmed Krita ran and the relevant functions work.
  • I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
  • I made sure my commits build individually and have good descriptions as per KDE guidelines.
  • I made sure my code conforms to the standards set in the HACKING file.
  • I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.

/cc @emmetoneill @eoinoneill (for the animation compatibility)

Edited by Amy spark

Merge request reports