Published by @SoNiceInfo at 9/21/2026
The easiest way to batch convert JPG, PNG, and HEIC images to JPEG XL (.jxl) on a Mac is a GUI app such as Image Tool+: drag and drop your images or folders, pick JPEG XL as the output format, and your images never leave your Mac. If you're comfortable in the terminal, the official encoder cjxl, installed via Homebrew, works too. Note that the sips command built into macOS can read JPEG XL but cannot write it, so the built-in tools alone can't create a .jxl file (details below).
JPEG XL is an image format designed as the successor to JPEG. It supports both lossy and lossless compression, high bit depth, HDR and wide color gamut, and progressive decoding. There are effectively two ways to create .jxl files offline on a Mac: a GUI app and the cjxl command.
| Item | Image Tool+ (recommended) | cjxl (command line) |
|---|---|---|
| Batch conversion | Drag and drop (whole folders too) | Needs a shell for loop |
| HEIC input | Reads it directly | No (convert to JPEG or PNG first) |
| Lossless, reversible JPEG recompression | — | Yes (the default for JPEG input) |
| Resize, rename, watermark | Applied in the same pass | No (needs other tools) |
| GUI | Yes | No (terminal) |
| Setup | Install from the Mac App Store | Homebrew and brew install jpeg-xl |
| Uploads your images | No | No |
Image Tool+, a batch image converter for Mac, is a Mac-only app I develop. It reads HEIC, PNG, JPG, GIF, TIFF, PSD, PDF, and more, and exports to 10 formats including JPEG XL. Using it takes three steps: drag images or a folder into the window, pick an output format, and hit Start.
Drop your images
Drag a stack of JPG, PNG, or HEIC files (or a whole folder) from Finder.
Pick JPEG XL as the output
You can select WebP, AVIF, PNG, JPG, and more at the same time. Set resize, watermark, and rename in one go.
Hit Start
Your JPEG XL (.jxl) files are exported in one batch.
Along with the conversion, it handles resizing, renaming, watermarking, metadata editing, and background removal in the same pass, and it preserves HDR and wide-gamut color on export. Everything is processed on your Mac, with no need to upload images anywhere. It's a one-time purchase with no subscription.
Note that the sibling apps WebP Converter. and AVIF Converter. specialize in WebP and AVIF respectively and do not export JPEG XL. For JPEG XL, Image Tool+ is the one to use.
macOS 12+ · Apple Silicon native
cjxl is the official encoder that ships with libjxl, the JPEG XL reference implementation. It's easy to script, and it can do the lossless JPEG recompression described below. With Homebrew installed, one command gets it. The decoder djxl comes along with it.
brew install jpeg-xlWhen the input is a JPEG, cjxl performs a lossless transcode by default. The image quality doesn't change at all; only the file gets smaller.
cjxl input.jpg output.jxlA .jxl made this way can be turned back into the original JPEG with djxl. On my Mac I confirmed with cmp that the restored JPEG is bit-for-bit identical to the original file.
djxl output.jxl restored.jpgFor lossy conversion from PNG and similar sources, set the quality with -d (distance). -d 1 is visually near-lossless, and larger values give smaller files.
cjxl input.png output.jxl -d 1For logos, screenshots, and other images you don't want degraded, use -d 0 for lossless compression.
cjxl input.png output.jxl -d 0-d — quality (distance). 0 is lossless and 1 is visually near-lossless; larger values mean smaller, rougher output.-e — encoding effort. The default is 7; higher values take longer and make files slightly smaller.To convert every JPG in a folder, use a shell for loop. The originals stay in place and files with the same name and a .jxl extension are created.
for f in *.jpg; do cjxl "$f" "${f%.*}.jxl"; doneNote that cjxl cannot read HEIC directly. To convert iPhone HEIC photos, first convert them to JPEG or PNG with sips, or use Method 1, which reads HEIC as is.
Can't the built-in tools do it? At the time of writing, the answer is: they can display and read JPEG XL, but not write it. macOS 14 Sonoma and later can display JPEG XL, so Quick Look in Finder and Preview.app open .jxl files. You can check which formats the built-in conversion command sips supports with this command.
sips --formats | grep -i jxlOn my Mac (macOS 27) it prints public.jpeg-xl jxl, but without the Writable marker that the JPEG and PNG rows have. Running sips -s format jxl produced no file. The other direction, JPEG XL to JPEG, does work with sips.
sips -s format jpeg input.jxl --out output.jpgHere is what happened when I converted a single 1600×1064 photo with cjxl. It's one example only; savings vary with the image content and settings.
| Source | Command | Result | Notes |
|---|---|---|---|
| JPEG 230 KB | cjxl (lossless transcode) | 187 KB | About 19% smaller; fully reversible to the original JPEG |
| PNG 1.86 MB | cjxl -d 0 (lossless) | 1.09 MB | About 41% smaller |
| PNG 1.86 MB | cjxl -d 1 (lossy) | 177 KB | Visually near-lossless setting |
Test environment: macOS 27, cjxl v0.12.0.
The first row is the one to notice. Photos you already have as JPEGs become about a fifth smaller without changing a single bit of image quality, and you can get the original JPEG back whenever you need it.
JPEG XL support is still changing. The following is as of the time of writing and partly based on secondary sources; check caniuse.com/jpegxl for the current status.
.jxl in Finder and Preview.app.Chrome and Firefox both plan to turn it on by default, but for now, serving JPEG XL on a website requires a <picture> fallback. The browser loads the first format it supports, from top to bottom.
<picture>
<source type="image/jxl" srcset="/images/hero.jxl" />
<source type="image/avif" srcset="/images/hero.avif" />
<source type="image/webp" srcset="/images/hero.webp" />
<img src="/images/hero.jpg" alt="..." width="1600" height="1064" />
</picture>Where JPEG XL shines today is archiving photos rather than delivery. It stores JPEGs about 20% smaller with no loss and can restore the original; it handles high bit depth, HDR, and wide color gamut; and it supports progressive decoding. For photographers who want to keep their shoots for the long term, those are all practical benefits.
cjxl; you can restore the original JPEGs at any time. To export masters in JPEG XL with HDR and wide gamut preserved, or to resize and rename in the same pass, Image Tool+ is the better fit.<picture> element. Image Tool+ can export JPEG XL, AVIF, and WebP in a single pass. For choosing a format, see WebP vs AVIF.cjxl. -d and -e give you fine control over quality and speed.JPEG XL (file extension .jxl) is an image format standardized as the successor to JPEG. It supports both lossy and lossless compression, high bit depth, HDR and wide color gamut, transparency, and progressive decoding in a single format. Its unique feature is that it can recompress an existing JPEG about 20% smaller with no change in quality, and then restore the original JPEG exactly.
At the time of writing, Safari 17 and later is the only major browser that displays JPEG XL out of the box. Chrome 145 (February 2026) and Firefox 152 (June 2026) brought their decoders back, but both keep them off by default behind a flag or preference, with default-on support planned. Check caniuse.com/jpegxl for the current status. If you use JPEG XL on a website, a <picture> fallback is a must.
Yes. When you give cjxl a JPEG, it performs a lossless transcode by default. The image quality doesn't change at all, and djxl can restore the original JPEG. On my Mac I confirmed with cmp that the restored JPEG is bit-for-bit identical to the original file.
Yes. macOS 14 Sonoma and later can display JPEG XL, so Quick Look in Finder and Preview.app open it directly. The built-in sips command, however, can only read JPEG XL, not write it. Converting the other way, from JPEG XL to JPEG, does work with sips.
For delivering images on a website, AVIF and WebP are the baseline at the time of writing, because every major browser supports them. JPEG XL is especially strong for archiving: storing JPEGs smaller with no loss, or keeping high-bit-depth and HDR masters. For choosing a delivery format, see the WebP vs AVIF comparison.
To batch convert images to JPEG XL on a Mac, start with the GUI app Image Tool+: drag and drop your images, HEIC included, and resize or rename them in the same pass. If you work in the terminal, or want to store JPEGs smaller with no loss, choose cjxl. The built-in sips command can't write JPEG XL. Either way, your images never leave your Mac.