Skip to content
heic.fyi

Repair

Repair a Corrupt HEIC

Find out what is really wrong with a HEIC that will not open, fix what can be fixed, and recover the part of the picture that is still in the file. We never claim more than we can show.

Input

Drop a damaged HEIC (or any file named .heic) files here

or choose them from your device

a damaged HEIC (or any file named .heic) · up to 100 MB per file · processed on your device

At a glance

Input
Up to 20 files, 100 MB each
Finds
Wrong format, junk bytes, truncation, damaged data
Output
Repaired HEIC, JPG or PNG, text report
Promise
Recovers what is in the file, never more

What this tool does

Repair a Corrupt HEIC is a diagnosis tool first and a recovery tool second. Most files described as corrupt are not damaged inside: they are a JPEG or PNG with a .heic name, a web error page saved under a photo's name, an empty placeholder that never finished downloading, or a real HEIC with a few stray bytes in front of or behind it. The tool identifies which of these you have from the file's actual bytes, and for the first few it can hand you a working file immediately.

When a HEIC really is cut short, the tool measures it. It compares the size the file's own box headers and item table call for with the size you actually have, and tells you how many bytes are missing. Large iPhone-style photos are stored as a grid of independent HEVC tiles, so every tile whose bytes are fully present is decoded on its own and placed where it belongs. The tiles that are not in the file are marked as missing in a coverage map; they are never filled in, blurred or guessed.

A single-picture HEIC works differently, because HEVC decodes from the top of the picture downward. The tool decodes the bytes that are there three times, each time padding the gap with a different filler, and keeps only the rows where all three decodes agree. Those rows were produced by real data; everything below them was produced by the filler and is discarded. The recovered area is exact, the same pixels a complete file would give, and the report shows what share of the picture it is.

Everything happens in your browser with the same WebAssembly decoder the converters use. The result comes with a plain-text report of what was found and what was done, so you can see exactly why a file was or was not recoverable and keep a record of it.

How to use it

  1. 01

    Choose the file or files

    Pick up to 20 files. The extension does not matter; the tool reads the contents. Include the files that will not open, even if they look like they have the wrong size or type.

  2. 02

    Wait for the checks

    The tool identifies the format, walks the container, compares declared and actual size, and decodes what it can. Progress names the step, and tile decoding shows a count.

  3. 03

    Read the verdict and the size check

    The headline says what happened in one sentence. For a cut-off file the size check shows how many bytes should be there, how many are, and how many are missing.

  4. 04

    Look at the recovered image and the coverage map

    For partial results, switch between the image, the coverage map and a side-by-side view. Green is recovered, grey hatch is missing. The percentage is pixels recovered out of all pixels.

  5. 05

    Save what you need

    Download the recovered image as PNG (missing area transparent) or JPG (missing area hatched grey), the repaired HEIC when a container fix worked, or the correctly named copy of a renamed image.

  6. 06

    Copy the report

    Copy the plain-text report to keep with the file or to send to whoever can provide a fresh copy. It lists every finding and every step, including the ones that failed.

When to use it

A photo will not open anywhere

Find out whether it is a mislabelled JPEG, a saved error page, an empty stub or a genuinely damaged HEIC, which decides whether a fix exists at all.

A download or transfer stopped early

A copy that was interrupted leaves a file that is shorter than it should be. The size check proves it, and tile or row recovery saves whatever part had arrived.

A cloud placeholder instead of the photo

A zero-byte file, or a tiny stub from iCloud, OneDrive or Dropbox, means the photo never reached this device. The report says so and points you to the right fix instead of pretending to repair it.

Stray bytes around a good photo

A HEIC with junk before its header or data after its last box is rejected by strict apps. Trimming it and re-checking the result produces a clean file when nothing else is wrong.

Good to know

  • 01Repair cannot create image data that is not in the file. If bytes are gone, the pixels they described are gone. The only way to get them back is another copy of the original: the phone, a cloud backup or a fresh download.
  • 02Flipped or overwritten bytes inside image data usually decode to wrong pixels without any error, so a file damaged that way can be reported as having no structural damage. Only runs of zero bytes and structurally invalid data can be detected with certainty.
  • 03Partial recovery of a single-picture HEIC keeps only the top of the picture. HEVC cannot resume after a gap, so bytes that exist after the damaged spot do not bring back the rows below it.
  • 04If the metadata box that lists the images is cut off, nothing in the file can be located and nothing can be recovered, even when most of the photo data is present. The tool does not scan for raw video data to rebuild it.
  • 05Recovered images are saved as JPG or PNG without EXIF, GPS, depth or HDR gain-map data. Only the standard-range picture is rebuilt. Grid images that use a feature the decoder lacks, such as a non-HEVC codec, are reported as unsupported rather than guessed at.
  • 06The test results behind this tool come from HEIC files encoded with x265 and assembled in the iPhone grid layout. Genuine camera files from other devices were not available to verify against, so unusual encoders may behave differently.

Technical notes

Privacy and limits

Your file stays on your device

This tool runs in your browser with WebAssembly. The file is read into the tab, processed there and discarded when you close it — there is no upload and no account. You can check this yourself in your browser's network panel, and the privacy page lists what analytics does and does not receive.

Limits and checks

Up to 100 MB and 100 megapixels per file; batches of up to 50 files and 500 MB. Files are treated as untrusted input and every output is re-opened and validated before it is offered — see how we handle untrusted files.

Frequently asked questions

Related tools and reading

Further reading

Last updated: . Something wrong or out of date? Tell us — corrections are recorded in the changelog.