What this page does to each file
The first bytes of a file say what it is, whatever its name says. A JPEG goes to the marker walk, which reads the compressed picture until it stops being trustworthy: the end of the file, a long run of zero or FF bytes, or a marker that cannot appear there. Everything before that point is kept byte for byte and the end marker is appended. A PNG goes to the chunk walk, which checks every CRC and keeps the image data that arrived.
Every row is decoded once in your browser to count the rows of picture that survive, and the count is printed. A recovered file that decodes can be carried to the bench in the same tab, without saving it first.
When this is the wrong tool
- A card that will not mount, or files that are missing altogether, need card-level recovery software. This page works on files you can already see.
- Picture data that was overwritten or never written cannot be rebuilt from the bytes that remain.
- RAW camera files (CR2, NEF, ARW, DNG) are not read here.
Questions about corrupted photos
Can corrupted photos from an SD card be fixed?
Why does my recovered photo still have a grey band at the bottom?
What does 'no picture data' mean?
Does it repair HEIC and WebP files?
Are my files uploaded?
Related
- Repair a corrupted JPEGName the byte where it broke and save the surviving original bytes with an end marker, not a re-encode.
- Repair a PNG fileWalk every chunk, check every CRC, and keep the chunks that survive byte for byte.
- The half-grey JPEGWhat a cut-off JPEG loses, why the grey band is not damage, and what ten cut points in one file show.


