v145 · Imaging · Media

JPEG XL decoding support (image/jxl) in blink

Chrome 145 introduces a Rust-based JPEG XL decoder, bringing support for the image/jxl MIME type to Blink — currently behind the enable-jxl-image-format flag, with default-on planned for late 2026.

Behind a flag in Chrome 145. Enable at chrome://flags/#enable-jxl-image-format to use these demos.

concepts

  1. Format Support Detector

    Detect whether the current browser can decode image/jxl. Shows how to use a minimal JXL probe image with an async loader, and demonstrates the <picture> element pattern for graceful JXL fallback.

  2. Format Showcase

    Side-by-side display of the same image encoded as JPEG XL and JPEG, using <picture> with type="image/jxl". Highlights JXL advantages: progressive decoding, wide-gamut HDR support, and lossless compression.

  3. Conditional Loader

    Probe image/jxl support via a 1x1 test decode, then dynamically build a <picture> source set that prefers JXL. Reports decode time per format.

  4. Picture Element Builder

    Detects which image formats the current browser supports (JXL, AVIF, WebP, JPEG, PNG), lets you reorder and toggle sources, and generates a ready-to-copy <picture> element — with a live verdict showing which format this browser would actually pick.

why it shipped

JPEG XL was removed from Chrome in 2022 after concerns about standardization. The format has since matured: it is now natively supported in Safari, Firefox adopted it, the PDF Association included it in its specifications, and Apple's platforms ship the format as a system codec. Chrome 145 restores JPEG XL support using a new Rust-based decoder (jxl-rs) for memory safety. JPEG XL offers meaningful improvements over JPEG and WebP: lossless compression 15–35% smaller than PNG, lossy compression visually superior to JPEG at equivalent file sizes, progressive decoding with a 1:8 preview at 1% of total bytes, and native support for HDR, wide-gamut (P3/BT.2100), and high bit depth (up to 32-bit).

references