Short answer: drop a HEIC here and the tool sorts it into one of three cases — won't-open (a damaged container or offset table around an intact photo), missing-tiles (the file was truncated, so part of the grid is gone), or opens-elsewhere (not corrupt at all — your viewer just lacks the HEVC decoder). It runs in your browser: the photo is never uploaded, 0 bytes leave your device, and you can confirm that in the browser's Network tab. It repairs the container structure in your browser now — stripping a garbage prefix, re-anchoring the iloc offsets, resyncing box sizes, salvaging the surviving tiles and the Exif on truncation. The honest limits: it repairs the container, not the coded photo itself, so a missing tile can't be brought back and turning HEVC into a viewable photo needs a decoder that browsers don't reliably have — the diagnosis is free either way.
HEIC won't open, or shows gray patches? Start here
- Drop the photo
- Local read — which of the three cases it is
- Honest prognosis, before anything else
Fixing a HEIC starts with knowing whether it's actually damaged, and if so where. HEIC is built on the same box container as MP4: a run of structural boxes (dimensions, an item-location table) followed by the HEVC-coded picture. Damage to the boxes leaves the picture intact but unreachable — that's the repairable class. Where the product stands, plainly: the structural HEIC engine repairs the container in your browser now — it strips a garbage prefix, resyncs box sizes and re-anchors the item-location table, and recovers the surviving tiles, the embedded thumbnail and Exif — not a guaranteed full-resolution render, because that needs an HEVC decoder browsers don't reliably ship. It runs the same way as everything we make: in your browser, no upload.
What broken HEICs look like — three cases
These blocks are illustrations, not screenshots, but if you've got a problem photo open right now, you'll recognize yours:
Why the cases differ: a HEIC is a short run of structuralboxes (dimensions, the meta box, aniloc table of byte offsets) followed by the picture, which Apple often stores as a grid of tiles plus a small embedded thumbnail. Box or offset damage leaves the tiles intact but unreachable (case 1): repair the structure and they return. Losing part of the file removes whole tiles (case 2): a hard boundary, because there's nothing left to decode there. And case 3 isn't corruption at all — it's the HEVC decoder missing on the machine that's complaining.
The messages this covers
This file format is not supported.Windows Photos — usually misleading: HEIC is supported once HEVC is installed, so a healthy photo triggers this too. If it also fails on the iPhone that took it, then it's genuinely damaged.
The file "IMG_2041.HEIC" could not be opened. It may be damaged or use a file format that Preview doesn't recognize.macOS Preview — the container is damaged enough that Preview can't parse it.
Unable to import this photo.A HEIC left truncated by an interrupted AirDrop, USB import, or iCloud sync — the classic missing-tiles case.
Where broken HEICs come from
Two sources dominate. Transfer trouble: an AirDrop or USB import that stopped partway, an iCloud sync interrupted mid-write, a failing phone or card — the file ends up truncated, losing tiles off the end. Data-recovery output: photos carved back after deletion, where the recovery tool guessed the file boundaries and returned a garbage prefix or the wrong length. Recovery finds bytes; repair makes them a picture again. If your HEICs came out of a recovery tool, diagnose them here before assuming they're lost.
What this can and can't fix
Repairable
- A garbage prefix before the file, or wrong box sizes — stripped and resynced so the container parses again
- An item-location (
iloc) table pointing at the wrong offsets — re-anchored to the real image data - Truncated files — the surviving tiles, the embedded thumbnail, and the Exif are salvaged and reported honestly (e.g. "42 of 48 tiles intact")
Not repairable
- A missing tile in the grid — that region is data that doesn't exist in the file, and no tool invents it; no AI fill
- A guaranteed full-resolution render in every browser — HEVC decoding isn't reliably available client-side, so this behaves like structural recovery, not "here's your photo"
- Files that read 0 bytes or contain another file's fragments — a recovery problem, not a repair problem
The current honest boundary: this page tells you which of the three cases your HEIC is and, when the container is the problem, repairs it — re-anchoring offsets, resyncing boxes, salvaging the surviving tiles — right in your browser, like everything else we make. It repairs the container, not the coded photo, so it won't re-render a full-resolution HEIC. The diagnosis is free either way — you'll know the prognosis before anyone asks you for a cent.