24 August 2026

Why most tools fail
on iPhone photos

HEIC does not store metadata where JPEG stores it. Tools written for JPEG find nothing and report nothing, which looks identical to a clean file.

A silence that looks like success

Drop a HEIC photo into a lot of online metadata tools and they will tell you the file is clean. It usually is not. They are looking in the place JPEG keeps its metadata, finding nothing there, and reporting the absence as a result. Since every iPhone shoots HEIC by default, that is a large share of the photographs being shared in the world.

JPEG keeps things in a line, HEIC keeps them in a tree

A JPEG is a sequence of labelled segments read from the front. Metadata sits in one of them, marked APP1, and finding it means walking forward until you reach it. Anyone can write that loop in twenty lines. HEIC is an ISO base media container, the same family as MP4: a nested tree of boxes, where the picture is one numbered item and the EXIF is another, and neither knows where the other lives.

The index is the whole problem

To read the EXIF you need two boxes that sit apart from each other. One, called iinf, lists the items and says which is which — item 49 is the picture, item 50 is the EXIF. The other, iloc, says where each item's bytes physically start and how long they are. Read only one and you know either what exists or where things are, never both. That indirection is why a JPEG parser pointed at a HEIC finds nothing: there is nothing to find at the front of the file.

Cleaning it without breaking it

Removing the EXIF is harder still, because iloc records exact byte offsets. Delete the metadata and every offset after it becomes wrong, and the file stops opening. The way round it is to leave the space exactly as long as it was and write a valid but empty metadata block into it, padded with zeros. Nothing moves, every offset stays correct, and the photograph is untouched. It is the same trick that works for PDF, for the same reason: the safest edit is the one that changes no byte positions at all.

What to do about it

If you check a HEIC somewhere and it reports nothing, do not assume the photo is clean. Check whether the tool claims HEIC support explicitly. On this site the container is parsed properly, and you can confirm it: a photo straight from an iPhone will show its coordinates, the lens used, and often a serial number.

Try it