File formats: JPEG XL (.jxl) images open and place

File › Open and File › Place refused a JPEG XL file: Open said it was
not a format VectorCraft reads, and the dialogs did not list .jxl.

A read-only JPEG XL format joins the format table. Open, Place, drops,
copied files and Glass's Load Texture tell it by its first bytes (a bare
codestream or the ISOBMFF container). jxl-oxide 0.12.6 (pure Rust, MIT
OR Apache-2.0, without its default rayon feature) decodes the first
frame, which is stored as a PNG. Orientation is applied, and 16-bit
and floating-point samples become 8 bits. Colors are converted to sRGB
in XYB-encoded images and when the header names the color space or the
ICC profile describes one jxl-oxide knows; other images with an ICC
profile keep their samples. Premultiplied colors are divided by alpha
before that conversion. CMYK files are refused.

The decoder gets only a container's image boxes. It reads the header
first, and an image past MAX_RASTER_ALLOC gets the existing "too large
to draw" error before any pixels are decoded. Its image buffers are
capped at 16 times the image's RGBA size plus 16 MiB, and at most
MAX_RASTER_ALLOC. VectorCraft doesn't write JPEG XL yet.

Docs: docs/mcp.md, docs/file-format-parity.md, docs/target-app-parity.md,
README.
This commit is contained in:
dotCooCoo
2026-10-16 19:52:26 -07:00
parent 8bc6532928
commit d202910faa
30 changed files with 739 additions and 11 deletions
+1 -1
View File
@@ -227,7 +227,7 @@ and what's next; [`docs/target-app-parity.md`](docs/target-app-parity.md) the fu
all of Illustrator): everyday
vector illustration is close to usable: drawing and path tools,
Pathfinder and Shape Builder, paint, gradients, appearance and transparency, type with styles, threading and Hebrew/Arabic bidirectional layout, and
files (SVG, PDF and PDF-compatible `.ai` with PDF/X, legacy version 7 `.ai` keeping layers, groups and type, EPS, DXF, EMF/WMF, raster formats, PSD out and PSD/PSB in as their merged image, Print, Package).
files (SVG, PDF and PDF-compatible `.ai` with PDF/X, legacy version 7 `.ai` keeping layers, groups and type, EPS, DXF, EMF/WMF, raster formats, PSD out and PSD/PSB in as their merged image, JPEG XL in, Print, Package).
Affinity documents (`.af` from Affinity 3, `.afdesign`, `.afpub` and, by their content, `.afphoto` from Affinity 1 and 2) open
and place natively: layers, groups, artboards and pages, curves and shapes, fills, gradients and strokes, clipping
and masks, text and images, with what didn't come in (effects, adjustments, brushes, master pages…) listed in the