HEIC to JPG
Open the .heic photos an iPhone produces and save them as JPG or PNG. Decoded in your browser — the photos are never uploaded.
HEIC to JPG
Drop files here, or click to choose
The HEIC decoder is about 1 MB and is fetched from this site the first time you convert something — not when the page loads. Everything after that happens on this page.
Runs entirely in your browser. Your input never leaves your device.
What next?
FAQ
Why does my iPhone save photos I cannot open?
HEIC is a HEIF container holding an image compressed with HEVC (H.265). At the same visual quality it is roughly half the size of JPEG, which is why Apple made it the default in iOS 11. The cost is support: HEVC is patent-encumbered, so Windows, Android and every web browser either lack a decoder or hide it behind a paid or optional component. The file is not broken — the software opening it simply has no HEVC decoder.
If you would rather avoid the conversion altogether, iOS can go back to JPEG: Settings → Camera → Formats → Most Compatible. That changes future photos only; the ones already on the phone stay HEIC.
Are my photos uploaded?
No. This page loads a WebAssembly build of libheif from this site and decodes the file inside the tab, then re-encodes it with your browser's own JPEG or PNG encoder. Nothing is transmitted. You can watch the Network tab, or disconnect after the page has loaded and convert anyway. The decoder is about 1 MB and is fetched the first time you convert something, not when the page opens.
What do I lose converting to JPG?
Detail, in a way you may or may not see. The HEIC has already been through one lossy compression; decoding it and re-encoding as JPEG applies a second, different one, and each pass discards information the previous pass kept. At a high quality setting the difference is hard to spot on a photograph, but it is a copy of a copy — keep the original HEIC if the photo matters.
The file will very often be larger than the HEIC, sometimes twice the size, because JPEG is simply a less efficient codec. That is expected, not a bug. If the size matters, take the result to Compress Image, or drop the dimensions with Resize Image first. To collect a set of converted photos into one document, Image to PDF takes JPGs a page at a time.
Depth maps, HDR gain maps, edit history and burst frames stored beside the picture do not survive: JPEG has nowhere to keep them. Choosing PNG gives you a lossless copy of the decoded pixels, but PNG is a poor fit for photographs and the files are usually several times larger than the JPEG.
The colour profile is not carried over either. An iPhone photo is usually in Display P3, a wider gamut than sRGB, and the file written here has no ICC profile attached — so anything opening it assumes sRGB. Saturated reds and greens can come out flatter than in the original. If exact colour matters, keep the HEIC and convert with software that embeds the profile.
What happens to a Live Photo?
You get the still frame — the single image the container marks as its primary item, which is the frame Photos shows you. The accompanying video lives in a separate .mov file that a browser tool never receives, and any extra frames in a burst stay in the original file. When a file turns out to hold more than one image, the tool says so under the result.
Will portrait photos come out sideways?
No. HEIF stores rotation and mirroring as irot and imir properties on the image item, and libheif applies both while decoding, so the pixels handed to the canvas are already the right way up. This is the most common defect in browser image tools, and the reason it is not a problem here is that the transform is handled inside the decoder rather than by us reading an EXIF tag. It is checked rather than assumed: the test suite decodes a HEIC whose stored image is 64 × 48 with a quarter-turn property and fails unless the decode comes back 48 × 64.
Which files does it accept?
.heic, .heif and Canon's .hif, checked by reading the ftyp box rather than trusting the extension — Windows often reports no MIME type at all for these. AVIF is refused straight away, on its major brand: it uses the same container but the AV1 codec, which this decoder does not contain, and browsers open AVIF natively, so the Image Format Converter handles it — that tool deliberately does not take HEIC, because a browser canvas cannot decode one.
Photos above about 16.7 megapixels — Safari's canvas ceiling, which a 24 MP iPhone photo passes — are scaled down to fit rather than refused, and the result says by how much. Below that nothing is resized.
What is the decoder, and what licence is it under?
libheif with libde265, compiled to WebAssembly and published as libheif-js. Both are LGPL-3.0, not MIT like the rest of this site. The binary is served as a separate file from /third-party/libheif/, never fused into our own JavaScript, and it can be replaced with any compatible build — see THIRD-PARTY-NOTICES.md in the repository for the full notice and the licence text.
More image tools
- Image to Text (OCR) — Read the text out of photos and screenshots in English, Vietnamese, Spanish or Portuguese.
- Compress Image — Shrink a photo to fit an upload limit, with the before and after shown side by side.
- Resize Image — Scale an image to exact pixels, a percentage, or to fit inside a box.
- Crop Image — Drag a box to crop, with presets for 1:1, 4:5 and 16:9.
- QR & Barcode Scanner — Read QR, Data Matrix, Aztec, PDF417, EAN, UPC, Code 39/93/128 and ITF from a photo or your camera.
- Remove Image Background — Cut the subject out of a photo and save a transparent PNG.