Skip to main content
Tracemute Clean a file

← All formats

HEIC / HEIF

Apple's modern still-image format. ISOBMFF container — same as MP4 — wrapping HEVC-encoded pixels.

Extensions
.heic · .heif
MIME
image/heic
Strip
Lossless
Updated
2026-05-14

HEIC is the default photo format on iPhones since iOS 11 (2017). It’s smaller than JPEG at equivalent quality, supports 10-bit colour and HDR, and is built on the same ISO Base Media File Format (ISOBMFF) container as MP4 video — which means the same box-walking parser handles both.

If you’ve ever AirDropped a photo and seen .heic arrive, that’s this format.

What it carries

HEIC’s metadata model is fundamentally different from JPEG’s. Instead of APP segments in a linear byte stream, HEIC has items, boxes, and references:

  • meta box — the metadata container. Holds an iinf (item info) declaring what items exist, an iloc (item locations) pointing at byte offsets, and the actual item data.
  • Exif item — the EXIF blob, referenced by an iinf entry with type Exif. Same TIFF wire format as JPEG.
  • mime item — XMP packets and other typed payloads.
  • Apple AssetIdentifier — buried inside an EXIF MakerNote tag (17). The UUID that pairs this HEIC with its companion MOV in a Live Photos pair.
  • iref / iloc — boxes that describe relationships between items. The thumbnail item is referenced via thmb; the main image via pitm (primary item).
  • HDR metadatamdcv (mastering display colour volume), clli (content light level info). Decoder hints for HDR rendering.

What’s unique

The Live Photos cross-asset identifier is HEIC’s most privacy-relevant payload. When your iPhone takes a Live Photo it writes two files — a .heic still and a .mov 3-second video — and stamps both with the same identifier. Anyone with both files can prove they’re a pair, even after renames. See the MOV page for how the same identifier appears on the video side via Apple’s com.apple.quicktime.content.identifier ilst key.

HEIC’s HEVC encoding is patent-encumbered, which is why most web browsers don’t decode it natively. Tracemute doesn’t decode HEIC either — it walks the box tree, rewrites metadata items, and writes a valid HEIC file out. No libheif WASM.

What Tracemute does

The handler is native ISOBMFF box surgery:

  1. Walk the box tree (ftypmetaiinf / iloc / item data).
  2. For each metadata item (Exif, XMP, etc.), rewrite the corresponding iinf entry and zero the item payload.
  3. Recompute box sizes upward — touching meta, then the top-level container.
  4. The image-data items (the actual HEVC slices in mdat) are byte-identical to the input.

What survives

HDR metadata (mdcv, clli) is kept — it’s required for correct display on HDR-capable monitors. Stripping it would degrade the visual result, which is exactly the kind of trade Tracemute avoids. The image’s HEVC payload is untouched.

Where this format shows up

Real situations that hand you a HEIC / HEIF file.