Runs on your device · Your file never leaves your device.
iPhones save photos as HEIC, which Windows, older Android phones and many websites refuse to open. Drop them here and get standard, widely supported JPG files.
You can convert a whole batch at once — select every photo and download them together — and optionally cap the file size if you are uploading to a form with a limit.
The conversion runs on your own device, which is the important part for personal photos: they are not sent to a server to be converted.
We ran a 12-megapixel HEIC photograph (1.36 MB) through this page in a browser, the way a visitor would, and checked what came out. The figures below were measured on the result, not estimated.


What this example does not show: Converting to JPEG compresses the picture again, so the result is very close to the original but not identical (see Similarity). Photo metadata, including any location, is not copied into the JPEG (see Metadata fields).
Measured on 2026-09-25 with the site’s own code (build 8672737). Files: x59-hangar-12mp.heic result
Photo: NASA/Christopher LC Clark (AFRC2025-0173-02), public domain. NASA does not endorse this site.
Not for: Keeping photo metadata — the JPG is rebuilt from the pixels alone, so EXIF (camera, date, location) is not carried over. Before sharing, that is usually what you want.
Most browsers cannot open HEIC on their own, so this page brings its own decoder, libheif, compiled to WebAssembly. It is about 1.4 MB and is downloaded from this site the first time it is needed in a visit, after which every photo reuses it. The photo is decoded into exact pixels on your device and then compressed once, by MozJPEG, at the quality on the slider. The quality score under the result compares the JPG with those decoded pixels.
The JPG is an ordinary picture with 8 bits per colour channel. Extra layers an iPhone may keep inside the same HEIC, such as the depth map behind Portrait mode or the brightness map recent models add for HDR screens, are not carried into it. The moving part of a Live Photo is a separate video file next to the HEIC and is not involved at all.
The slider starts at 85. HEIC stores a photo in fewer bytes than JPG can, so the JPG is often larger than the HEIC it came from; the result card shows both sizes for each photo, so you are not guessing.
If the photos will be edited, cropped or printed, move the slider to 90 or above, where colour detail is kept at full resolution and later edits start from more information. If a form sets a size in KB, switch on Force a maximum file size and type its number; how that limit is reached is explained on /compress-image.
Select as many HEIC files as you need. They are converted one after another, and the set downloads as a single ZIP. Two photos with the same name, such as IMG_0001 from two different folders, are both kept: the second gets (2) after its name. The thumbnails in the list are decoded at low quality only so they appear quickly; the conversion always starts again from the full file.
If one photo cannot be decoded, the others are still converted, and the ones that failed are listed by name with the reason.
A HEIC photo is recognised by its content, not only by its name, so an iPhone photo that was renamed to .jpg without being converted is still decoded correctly by tools that accept .jpg files, such as /compress-image. The file chooser on this page lists only .heic and .heif files, so to pick such a photo here, rename it back to .heic first.
This page in other languages: العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা