How to convert HEIC to JPG, and why iPhone photos are HEIC in the first place
Drop in a folder of .heic files and get ordinary JPGs back. The decoding happens inside the page, on your own CPU.
You AirDrop a few photos to a Windows laptop and the Photos app shrugs at them. Attach one to a support ticket and the reviewer writes back that the file will not open. The culprit is HEIC, and the HEIC to JPG converter turns those files into something every piece of software on earth already reads.
How it works
- Drop in as many .heic or .heif files as you like. Anything that is not HEIC gets filtered out with a note rather than silently ignored.
- Set the quality slider, which is the JPEG quality used for the re-encode. 85% is the default and it is hard to tell apart from the original at normal viewing size.
- Hit Convert. The tool decodes files one after another with a progress bar naming the current photo, shows the old size next to the new one on each result, and offers a Download all button for the batch.
Why your iPhone stopped making JPGs
Apple switched the default camera format to HEIC with iOS 11, back in 2017. The reason was storage. HEIC wraps the same picture in HEVC intra-frame compression, which typically lands around half the size of an equivalent JPEG at similar visual quality. On a phone with thousands of photos that adds up to gigabytes.
The catch is everything outside the Apple ecosystem. Windows 10 and 11 do not ship the HEVC codec that decodes HEIC, and Microsoft sells the extension in the Store rather than bundling it. Plenty of web forms, CMS uploaders, and print services reject the extension outright. That gap between "the phone makes it" and "the rest of the world reads it" is what sends people looking for a converter.
If you would rather not convert every time, iPhone can be told to stop: Settings, then Camera, then Formats, then Most Compatible. New photos come out as JPEG. Older ones stay HEIC.
What the conversion changes
JPEG has no equivalent of the HEIC container, so a few things do not survive the trip:
- EXIF metadata is dropped. Camera model, lens, and GPS coordinates do not carry over, which is usually a bonus when the photo is headed somewhere public.
- Rotation is baked in. The orientation flag is applied while decoding, so the JPEG is right way up on any viewer.
- Live Photo motion is gone. A Live Photo stores a short video alongside the still, and only the still is converted. To keep the movement, use the Live Photo to GIF tool instead.
- Depth and Portrait mode data disappear, along with any HDR gain map.
File size usually goes up. A 2 MB HEIC often lands somewhere between 3 and 5 MB as JPEG at 85% quality, because JPEG is simply an older and less efficient codec. Drag the slider down to about 70% if the size matters more than the last few percent of detail, or run the result through the image compressor.
Nothing leaves your device
The HEIC decoder is a WebAssembly build of libheif that gets fetched the first time you convert, roughly 2.7 MB, then cached. After that the work happens on your own CPU. Photos are never uploaded, which matters more than usual here since camera roll files tend to carry location data and faces.
Decoding is genuinely slow compared to a JPEG. A 12 megapixel photo takes a second or two per file, and a batch of thirty will keep the tab busy for a minute. The progress bar names the file it is on so you can tell the difference between working and stuck.