Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Converting HEIC to JXL produces a compact JPEG XL file from an iPhone photograph, and this page is mostly about what does not travel with it. The HDR gain map, the ten bits per channel and the Display P3 tag are all left behind, so the result is a good standard-range picture rather than the high-fidelity copy the format is capable of holding.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
HEIC to JXL
An HDR photograph from a recent iPhone is not one image with a wider range of numbers in it. It is an ordinary standard-range picture plus a gain map — a low-resolution greyscale layer stored alongside it in the same container, describing how much extra brightness each area should get on a display capable of showing it. That is why the same file looks luminous in the Photos app and flat when something else opens it.
This conversion reads the container, takes the primary image and encodes that. The gain map sits beside it as an auxiliary picture and is not applied and not carried, so the JXL you get is the standard-range rendering. Nothing is corrupted and nothing is broken; the extra layer never enters the pipeline. If the glow in the highlights is why you like the photograph, this route will not preserve it and no setting on this page will change that.
JPEG XL is genuinely the most capable still format on this site. The specification, ISO/IEC 18181, allows up to 32 bits per channel, wide-gamut colour, alpha, animation and a lossless mode that is competitive with anything. Published as ISO/IEC 18181-1 in 2022 by the same committee that produced JPEG, it was designed with exactly the case you are here for in mind.
The pipeline that feeds it here is more modest. The HEIC is decoded to eight-bit RGBA, resized if you asked, and handed to the encoder at quality 82. A format that could hold four times the bit depth receives eight bits; a format that could carry the picture losslessly is asked for a lossy encode. That is not a fault to be fixed on this page, it is the shape of the conversion, and knowing it is the difference between a sensible decision and a disappointed one.
The property JPEG XL is best known for is that it can take an existing JPEG file and repack it, losslessly, at roughly a fifth less space, with the original JPEG bit-exactly recoverable afterwards. It is a remarkable piece of engineering and it is what people usually mean when they say JPEG XL is lossless.
It works because JPEG XL shares its ancestry with JPEG and can re-code the same coefficients. A HEIC holds HEVC-compressed data, which has nothing in common with that, so there is no repacking to do — the picture has to be decoded and compressed again from scratch. If somebody has told you that converting to JPEG XL is free of loss, they were describing the JPEG case and it does not transfer.
A HEIC can hold ten bits per channel and the iPhone uses that, most visibly in gradients: a clear sky, a wall in even light, skin in soft window light. Ten bits gives four times as many levels to describe those transitions as eight does, which is the difference between a smooth ramp and one with faint steps in it.
The decode here produces eight bits, so those levels are quantised before the encoder ever sees them. On a photograph with texture across the frame it makes no visible difference. On a big smooth gradient it can, particularly if the picture is later brightened or has its contrast pulled about — banding that was latent in eight bits becomes visible once the range is stretched.
iPhone photographs are tagged Display P3, a colour space noticeably wider than sRGB in saturated reds and greens. JPEG XL can carry a colour profile and does so well. This conversion writes none, so the numbers arrive unlabelled and any viewer will assume sRGB.
The result is a slight desaturation of the strongest colours rather than a dramatic shift — a red that was vivid comes back merely bright. It is the same behaviour as every other conversion on this site that decodes and re-encodes, and it is the second reason, after the gain map, that this route is not the way to move a colour-critical photograph. Editing the HEIC in software that manages colour and exporting from there is.
The encoder runs at quality 82 unless you change it, which is the same default the rest of the site uses and a sensible one: high enough that the second generation is not visible on ordinary subject matter, low enough that the file stays worth having. Raising it towards 95 costs a lot of bytes for very little; dropping it below 70 starts to show.
Where a second pass shows first is where the first pass already worked hardest. Look at out-of-focus backgrounds, at the boundary between a bright sky and a dark roofline, and at large areas of nearly-flat colour. If you are converting pictures you care about, convert five of your most difficult ones and compare at full size before committing to the rest.
Besides the gain map, a HEIC can hold a burst, the frames behind a Live Photo, a depth map from Portrait mode, or an unedited original kept beside the edited version. All of that is what makes the format interesting and all of it is auxiliary to the primary image.
The conversion takes the primary image, which is the one the phone shows and the one anybody pointing at the file means. Everything else stays in the HEIC. That is a strong argument for not deleting the originals after converting: the JXL is a rendering of one picture out of a file that contained rather more than one picture.
The full pixel dimensions come through unchanged unless you set a maximum width, so a 12-megapixel frame stays 4,032 by 3,024 and a 48-megapixel one stays 8,064 by 6,048. An alpha channel, if the source has one, survives the conversion — JPEG XL supports it and the pipeline preserves it.
The metadata does not. Capture date, camera model, exposure, lens and any GPS coordinate are absent from the output. For a photographer that is worth planning around rather than discovering: a folder of undated pictures is much harder to live with than a folder of large ones, so keep the HEIC originals or export the capture data separately before you rely on the JXL set.
Support for JPEG XL is partial and it has moved in both directions. Some browsers decode it and some have removed the capability; some image editors read it natively and others need a plug-in; a good many photo managers and upload forms do not know it exists. This is the single biggest practical risk of choosing the format.
The test is cheap. Convert one photograph, then try to open it in the specific things you use — your editor, your file manager’s preview, whatever gallery software the pictures will live in, and the browser you actually browse with. If all four handle it, the format is a good choice for you. If two of them do not, the conversion has produced files you cannot look at, and that is a worse outcome than a slightly larger format.
Both halves of this run locally: libheif decodes the HEIC and the JPEG XL encoder compresses the result, each compiled to WebAssembly and loaded on demand into the page you are reading. No request carries an image, which the network tab shows and a disconnected machine proves.
That is what makes experimenting practical here. Trying three quality settings on the same picture, or converting a batch and throwing it away, costs nothing but your own processor time — and it does not mean handing your photographs to an unknown server three times to find out which setting you preferred.
| HEIC | JXL | |
|---|---|---|
| Full name | High Efficiency Image Container | JPEG XL |
| File extension | .heic | .jxl |
| Media type | image/heic | image/jxl |
| Compression | Lossy — file size is bought with quality | Either, depending on the setting |
| First published | 2015 | 2021 |
| Published by | MPEG | Joint Photographic Experts Group |
| Specification | ISO/IEC 23008-12 | ISO/IEC 18181 |
| Licensing | Published, not standardised | Open standard |
| Standing today | Current | Niche |
| Bit depth | 10 | 32 |
| Colour it can describe | YCbCr, wide gamut | RGB, greyscale, wide gamut |
| Opens in a browser | Some browsers | Some browsers |
| Considered instead | JPG, AVIF, WebP | AVIF, WebP, PNG |
JXL has nowhere to put the GPS coordinates, so that goes no further than the HEIC. Worth checking before the original is deleted, and worth knowing if the point was to strip it.
Transparency survives. Both HEIC and JXL store an alpha channel, so a cut-out stays cut out and nothing is filled in behind it.
Animation survives. HEIC and JXL both hold multiple frames, so the result moves rather than freezing on the first one.
The usual programs do not overlap: HEIC opens in Apple Photos and Adobe Lightroom, JXL in GIMP and ImageMagick — so whoever receives the result needs something from the second list.
The result is larger than the original and no better. HEIC has already discarded detail, and JXL stores what is left without discarding more — it prevents further loss rather than undoing the first one.
HEIC is MPEG's format, published in 2015. It records 10 bits per channel.
JXL comes from Joint Photographic Experts Group and dates from 2021, specified as ISO/IEC 18181. GIMP and ImageMagick all read it.
No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is libheif, the reference decoder for Apple's HEIC; your browser fetches it once and caches it.
No. An HDR photograph from an iPhone is stored as an ordinary picture plus a separate gain map that tells a capable display how far to push the highlights. This conversion takes the primary picture and encodes that, so what you get is the standard-range rendering — the same thing you see when you open the photo on a screen that does not do HDR. JPEG XL is capable of carrying HDR; this path does not hand it any.
No. The encoder runs at quality 82, so this is a second lossy generation on top of the compression the phone applied. JPEG XL does have a lossless mode and a well-known trick for recompressing existing JPEG files without loss, and neither applies to a HEIC source, because a HEIC is not a JPEG and the picture has to be decoded to pixels first.
Both are lost on the way through. The picture is decoded to eight bits per channel and encoded from that, and no ICC profile is written into the output, so a viewer treats the values as sRGB. JPEG XL can hold up to 32 bits per channel and wide-gamut colour; this conversion gives it eight bits and no profile.
When you want a compact, open, well-specified file for standard-range viewing and JPEG XL is what your tooling has asked for. It is a good format and this produces a good file. What it is not is a way of preserving the parts of an iPhone photograph that only exist in Apple’s pipeline.
Support is partial and uneven — some browsers and image tools read it, others do not, and the situation has changed more than once. Convert one file and confirm that the specific software you rely on opens it before converting anything you care about. That check takes a minute and is the difference between an archive and a folder of files nothing displays.
No. libheif decodes the HEIC and the JPEG XL encoder runs, both compiled to WebAssembly and both inside this page. The photographs stay on your device.