HEIC to JPG, without the quality loss
Updated 12 October 2026 · 6 min read
You take a photo on an iPhone, email it to someone on Windows, and they tell you the file won't open. The photo is fine, the file is fine — the container is the problem. HEIC is what Apple has used since iOS 11 because it stores roughly the same picture in about half the bytes of JPEG.
The catch is that only Apple's software and a handful of licensed decoders can read it. Chrome, Firefox and Windows Photos still cannot do it out of the box. So the file that saves you storage on the phone becomes dead weight the moment it leaves the Apple ecosystem.
What "without the quality loss" really means
Any HEIC → JPG conversion is a re-encode, and every re-encode throws information away. What you control is how much:
- Decode quality is not your problem. Modern decoders reconstruct the same source pixels; the difference between tools at this step is negligible.
- Encode quality is your problem. JPEG at 80–85% is visually indistinguishable from the original for photographs. At 60% you start seeing blocking in skies and faces.
- Chroma subsampling is the hidden killer. Many exporters quietly use 4:2:0 subsampling, which smears saturated reds and blues. If your tool has a "4:4:4" option and the image has vivid colour, use it.
- Resolution matters more than format. A 4032 px wide photo is 3.5 MB of mostly redundant pixels if it will be viewed at 1200 px. Resizing down to 1920 px saves an order of magnitude more bytes than fiddling with the JPEG quality slider.
The four ways to convert, ranked
- Turn it off at the source (best). Settings → Camera → Formats → Most Compatible. New photos are then saved as JPEG and you never convert anything again. Downside: roughly double the storage on the phone. This is the right answer for most people.
- Convert on the Mac. Preview → Export, or simply change the "Keep originals" setting in the Photos export dialog. Native decoder, no extra software. macOS only.
- Convert in a browser tool that supports HEIC. Safari can decode HEIC natively, so Safari-based tools work. Chrome and Firefox cannot — a purely client-side tool running in Chrome has no way to read the file, and any site claiming otherwise is uploading it.
- Use an API or a batch utility. For hundreds of files or an automated pipeline, this is the only sane option — server-side decoders handle HEIC, RAW and the awkward variants reliably.
How to check you didn't lose anything
Open the JPG at 100% zoom next to the HEIC original and look at three places: a smooth gradient such as a sky, a sharp edge with high contrast, and skin. Gradients reveal banding first, edges reveal blocking, skin reveals colour shifts. If those three look clean, the conversion is fine — stop worrying about the file size difference.
The sizes, in practice
A typical 12 MP iPhone photo: HEIC around 1.8 MB, JPEG at 85% around 2.9 MB, WebP at 85% around 1.4 MB. If the destination is the web rather than a printer, converting to WebP — and capping the width at what the layout actually needs — beats a plain JPG conversion on both size and quality. JPEG wins only when something ancient has to open the file, such as a print shop or a government form upload.