Convert JXL to JPG online
Chrome 155+ and Safari 17+ decode JPEG XL natively, and this page uses that when your browser has it; everywhere else a WebAssembly decoder runs in the tab. Drop your photos, open one, press Download .jpg — the photos never leave your device.
Drop .jxl photos (or a zip of them) anywhere on this page
The decode runs entirely in your browser. Photos never leave your device.
JPEG XL is the codec the web spent five years arguing about: Chrome shipped it, removed it in 2021, and shipped it again — Chrome 155, released October 6, 2026, decodes .jxl natively on desktop, with Android to follow. Safari has decoded it since version 17 in 2023; Firefox is expected to land it in version 157. That leaves a lot of browsers — and a lot of Windows and Linux machines — that still show a .jxl as a blank file, which is exactly when a converter earns its keep. Nearly every "jxl to jpg" result does it by uploading your photo to a server; this page does the conversion the other way around: the decoder travels to you, and your photos never travel at all.
The distinction is checkable, not a slogan. Open DevTools, convert a photo, and watch the Network tab: on Chrome 155+ and Safari there is no engine download at all (your browser is the decoder), and on other browsers the only fetch is a one-time ~0.8 MB engine download from this site’s own domain, cached afterwards. No request ever carries your photo. Load the page, go offline, and conversions still work. If your photos arrived in a zip, drop the zip: every .jxl inside opens from the file tree and converts on demand.
How to convert JXL to JPG
Nothing to install, nothing to sign up for:
- Drop your
.jxlphotos anywhere on this page — one file, several, or the whole zip — or press Try an example photo first. - Click a photo in the file list. It decodes to full resolution in the viewer (first open on non-native browsers also fetches the engine, once).
- Press Download .jpg in the status bar — the export is the exact decode you are looking at.
- Open the next photo; ← and → step through the folder’s other JXLs without stacking tabs.
- Many photos? The toolbar’s Convert JPEG XL photos to JPG button (or ⌘K) batch-converts the current folder — up to 50 per run — and downloads every JPEG as one zip with the folder structure kept.
What this JXL converter actually does
A .jxl file is pixels compressed with the JPEG XL codec (ISO/IEC 18181) — either as a bare codestream starting with the marker bytes FF 0A, or wrapped in a small container whose 12-byte signature box spells JXL . A converter cannot just re-label the file: the pixels must be decoded, then re-encoded as JPEG. That is precisely what happens in your tab — on Chrome 155+ and Safari the browser’s own decoder does it (color-managed, zero download), and everywhere else the libjxl engine compiled to WebAssembly decodes to full-resolution RGB, re-encoded as JPEG at quality 92.
It is a real decode of the photo’s pixel data — not a rename, and not an extraction of any embedded preview. That is also true for the format’s signature trick: JPEG XL can losslessly *recompress an existing JPEG* about 20% smaller and give you the exact original bytes back on decode. Converting such a file here reconstructs the original pixels faithfully, then re-encodes them — the lossless round-trip guarantee belongs to the format, and the decode honors it.
Quality, size, and what you trade away
JPEG is lossy, so converting a lossy JXL to JPG is a re-encode: at quality 92 the result is visually indistinguishable for photos, but it is still a second lossy step. If your JXL was a lossless JPEG recompression, the pixels you get are the original JPEG’s — but the JPG you export is a fresh encode of them, not the recovered original file (recovering the exact original JPEG is a different operation than converting to JPG).
Size can go either way: JPEG XL typically compresses 25–60% better than the original JPEG at equal quality, so the JPG you export is often *larger* than the .jxl it came from — the price of a format everything opens.
One deliberate trade here: EXIF metadata — shooting date, camera model, and GPS location — does not survive the export. For photos you are posting or sending onward, that is usually a privacy plus. If you need the metadata, keep the original .jxl and treat this as a pixel export.
Converting is only half the story — if what you actually want is to *look* at JPEG XL photos (zoom, cull a folder, check what is inside an archive), the same engine is framed for inspection at open .jxl online; for the format Apple’s iPhones actually write, see the HEIC to JPG converter.
Honest limits
Real capability, real boundaries — stated up front.
- Animated JXL files contribute their first frame; this is a still-photo converter, not a player.
- HDR JXLs (10/12-bit, PQ/HLG) are tone-mapped to standard 8-bit sRGB on the way out — the JPG format cannot carry the HDR metadata.
- One-time engine download (~0.8 MB) on browsers without native JPEG XL — Firefox today, older Chrome, Chrome on Android for now; fetched from this site’s own domain and cached, after which converting works offline. Chrome 155+ desktop and Safari 17+ convert natively with no download at all.
- Size caps keep the tab alive: 128 MB per file, and a decoded-size ceiling far above any camera photo.
- Folder batches convert the first 50 photos of the current folder per run — rerun in subfolders for more.
Credits
The fallback decode engine is libjxl, the reference JPEG XL implementation, packaged by jSquash (@jsquash/jxl, from the Squoosh lineage) as WebAssembly and served from this site’s own domain as a standalone, replaceable file. This page adds the viewer, the JPEG export, and the archive integration; libjxl and your browser do the decoding.
Frequently asked questions
Does Chrome support JPEG XL now?
Yes — Chrome 155 (desktop, released October 6, 2026) ships native JPEG XL decoding, so files open and convert with no engine download at all. Android support follows in a later release. Safari 17+ (2023) already decoded it, and Firefox is expected to add it in version 157 around November 2026. On every other browser this page falls back to a WebAssembly decoder and tells you so with a visible notice — it never silently downloads.
How do I convert JXL to JPG without uploading?
Drop the photos on this page, click one, and press Download .jpg. The decode happens inside your browser tab — natively on Chrome 155+/Safari 17+, or via the WebAssembly engine elsewhere — so the conversion happens on your device. You can go offline after the page loads and it still works. There is no queue, no watermark, and no per-file charge because there is no server doing the work.
Is this JXL to JPG converter free?
Yes, with no artificial limits — no daily caps, no watermarks, no sign-up. The limits that exist (128 MB per file, 50 photos per folder batch) exist to keep your browser tab responsive, not to sell an upgrade.
What is the difference between JPEG XL and AVIF?
Both are modern royalty-free codecs competing to replace JPEG, and both support HDR, transparency, and animation. JPEG XL compresses somewhat better at high quality, can losslessly recompress existing JPEGs (AVIF cannot), and Progressive JPEG-style responsive decode; AVIF arrived in browsers years earlier (Chrome 85, Firefox 93, Safari 16.4) and its hardware decode support in phones is broader. For converting either one to JPG, this page handles JXL and the regular image viewer handles AVIF natively.
Can I convert several JXL photos at once?
Yes — the toolbar’s Convert JPEG XL photos to JPG button (or the ⌘K command palette) converts every .jxl in the current folder, up to 50 per run, and downloads them as one zip that keeps the folder structure. Each JPEG is the same full decode the single-photo export produces: EXIF stripped, animations contribute their first frame.
Will the JPG keep my photo’s EXIF and GPS data?
No. The JPG is a re-encode of the decoded pixels, and metadata — including where the photo was taken — does not travel with it. For sharing, that is a feature; if you need the metadata, keep the original JXL.