JPEG XL Converter — in your browser
Convert .jxl ⇄ JPG / PNG / WebP without uploading anything. Everything happens locally via WebAssembly, so your images stay on your device.
Client-side · powered by jSquash WASM
100% private: images are processed locally and never uploaded. First JXL conversion downloads a small WebAssembly module (~1–2 MB); after that it's instant. Very large images (40MP+) use significant memory.
Why convert JPEG XL?
JPEG XL compresses better than JPEG and can losslessly shrink existing JPEGs ~20%. But support is uneven — many apps and Chrome (by default) still can't open .jxl, so converting to JPG or PNG makes images universally viewable. Going the other way, encoding to JXL saves storage for archives where you control the viewer.
How it works
- Your file is read into memory in the browser (never sent anywhere).
- It's decoded to raw pixels — JXL via the jSquash WebAssembly decoder, other formats via the browser's native decoder.
- Pixels are re-encoded to your chosen format (JXL via WASM; JPG/PNG/WebP via canvas), and offered as a download.
FAQ
Is there a file-size limit?
No hard limit, but huge images need lots of RAM to decode. If a 48MP image fails on mobile Safari, try a desktop browser.
Does this work offline?
After the WASM module is cached on first use, conversion works without a network connection.
Will quality drop?
PNG is lossless. JPG/WebP/JXL lossy modes use your quality slider; 85 is a good default.