Why you suddenly have .jxl files
JPEG XL is a newer image format: at the same quality its files are smaller than JPG, and it can hold
transparency, animation, wide colour and HDR. Chrome 156 lists
image/jxl first in the image types it asks websites for. Image services that choose the
format automatically answer with JPEG XL: when we asked Cloudinary for the same sample photo, it sent
Chrome a JPEG XL, Edge an AVIF and a plain request a JPEG. You don't see any of this on the page. You
see it when you save the picture, because the file is the one the site actually sent. Our guide
why are my images saving as WebP has the full
measurement and the trick of removing f_auto or auto=format from the address.
The trouble is that almost nothing else opens JPEG XL yet. In our tests Windows 11 couldn't open it without an extra codec, and Microsoft Edge 156, the browser that comes with Windows, couldn't show a single one of our test files. That also breaks many online converters that rely on the browser to read the picture: they work in Chrome and fail in Edge.
What we tested
We made nine JPEG XL files with libjxl 0.12, the reference encoder, and added the real JPEG XL that Cloudinary served to Chrome. Each was opened in Chrome 156 and Edge 156 on Windows 11 on 30 October 2026, converted with this page in both browsers, and the JPGs were checked with Pillow, an independent decoder.
| Test file | Chrome 156 opens it | Edge 156 opens it | This tool's JPG |
|---|---|---|---|
| Photo, 1024 × 768, 208 KB | Yes | No | 284 KB; Edge and Chrome results 44.5 dB apart (visually identical) |
| Cloudinary sample, 60 KB | Yes | No | 117 KB, 864 × 576 |
| iPhone photo (Display P3) converted from JPEG, 1.08 MB | Yes | No | Saved upright, keeps P3 colours; 43.5 dB against the original JPEG |
| Logo with a transparent background | Yes | No | Background filled with the colour you pick |
| Display P3 colour strips | Yes | No | Every strip within 1 level of the source, P3 profile embedded |
| Animated, 6 frames | Yes | No | First frame, with a note that it had 6 |
| 16-bit photo, HDR (PQ) gradient, greyscale, lossless photo | Yes | No | All converted; 16-bit and HDR noted |
How it works in Edge
In Chrome this page lets the browser's own JPEG XL decoder read the file. Where the browser can't, it loads jxl-oxide, an open-source JPEG XL decoder compiled to WebAssembly (1.7 MB, downloaded once and kept for next time), and decodes the file inside the page. Nothing is uploaded in either case. We compared the two decoders pixel by pixel on all ten files: they differed by 0 to 0.7 levels out of 255 on average, which no one can see.
The comparison also turned up a bug. For Display P3 images, jxl-oxide labels its output with the code for cinema P3, which has a different white point. Chrome then shows the pure P3 green as (68, 255, 5) instead of (0, 255, 0), a Delta E of 8.5, and red shifts by 3.4. This page corrects the label before drawing, and in our test the P3 strips came out the same in Edge as in Chrome.
Vivid colours from iPhone photos
Photos from iPhones are usually saved in Display P3, a wider colour range than the standard sRGB most images use. When such a JPEG is turned into JPEG XL, the colour profile goes with it, compressed inside the file. A converter that draws the picture as plain sRGB cuts off every colour outside that range. In our iPhone test photo that was 0.6% of the pixels, the most saturated ones, and they shifted by up to 13.6 Delta E. That's a plainly visible change, even though the rest of the picture is untouched.
This tool draws the picture in Display P3 first and checks whether any colours fall outside sRGB. If they do, the JPG keeps them and carries a Display P3 profile, which current Windows, macOS, phones, browsers and Photoshop read. If not, it is saved as ordinary sRGB. Choose Standard sRGB for an old program or a print shop that shows the colours wrongly.
A JPEG XL made from a JPEG can give the original back
JPEG XL has a special lossless mode for existing JPEGs: it repacks the same data into a smaller file and
keeps what's needed to rebuild the original. Our 1.31 MB iPhone JPEG became a 1.08 MB JPEG XL (17%
smaller), and
libjxl rebuilt the original byte for byte. The tool spots these files and tells you. It still writes a
new JPG from the picture, which looks the same at 92% quality; if you need the exact original file, for
example for photo archives, run djxl photo.jxl photo.jpg from the free libjxl tools.
Transparency, animation, rotation and file size
JPG has no transparency, so see-through areas are filled with white unless you choose another colour. To keep them transparent, convert to PNG with Convert image format in Chrome. An animated JPEG XL becomes its first frame. A photo stored sideways with a rotate note is saved upright, so it shows correctly everywhere. Camera details (EXIF) are not copied into the JPG, which also means no location data travels with it.
Expect the JPG to be larger than the JPEG XL: 1.4 times for our photo, 1.9 times for the Cloudinary sample. That's the older format, not a fault. If a form has a size limit, convert at 92% and then use compress image to a target size. Other web formats that cause the same trouble: WebP to JPG, AVIF to JPG.