If try to open a JPEG file with a corrupt header in the Windows Photo Viewer it will tell you:
“Windows Photo Viewer can’t open this picture because the file appears to be damaged, corrupted or is too large.”
This message indicates that at least the header of the JPEG is corrupt. If damage is limited to the header then it is likely the picture can be repaired if you have a known good image shot with the same camera. If damage extends beyond the header repair is unlikely.
|Howto fix with JPG-Repair:|
In this blog post we’ll address:
- Check if JPEG can be repaired using a hex editor
- Repair corrupt header using hex editor
- Repair using a JPEG Repair Utility
Check if picture can be repaired
Most pictures that are sent to my JPEG Repair service that are beyond repair suffer from:
- Entirely filled with zeros
- Entirely filled with a repeating byte pattern (FF FF FF etc.)
It’s obvious when the software (Windows Photo Viewer) tried to parse such a file starting with file header, it will immediately run into trouble. it will respond with it’s catch all corrupt header error message “Windows Photo Viewer can’t open this picture because the file appears to be damaged, corrupted or is too large.”
You can check this using a hex editor like HxD.
If the file however contains data, you can try repairing the corrupt JPEG.
Repairing a JPEG using JPEG repair software
Using JPEG Repair software to fix the “File appears to be damaged, corrupted or is too large” error message.
Using my utility JPG-Repair and a sample or reference file you can patch an intact header on your corrupt JPEG files. The free trial version allows for one file to be repaired at the time.
Required: Intact sample. Sample = JPEG shot with same device + same settings. Place this file in the same folder as the corrupt files and name it sample.jpg.
Steps to repair a File appears to be damaged, corrupted or is too large error message:
- Place the corrupt or damaged JPEGs + sample file in one folder. The sample needs to be named to “sample.jpg”.
- Double click “jpgrepair.exe”. There is no setup, just a single executable file.
- Select the drive containing the copies of the corrupt photos.
- Browse to the folder containing the copies of the corrupt photos. If you have for example copied them to a folder on your desktop, you typically select the C: drive > Users > Your username > Desktop > and then the Folder.
- Select the JPEGs you need to repair. The free version saves scaled down versions of the original files in BMP format.
- Click “Repair”.
Please register (buy license) if JPG-Repair was useful to you.
This short video explains the simple procedure as well:
If all went well then the “Windows Photo Viewer can’t open this picture because the file appears to be damaged, corrupted or is too large.” error is no longer displayed and it will now show your photo.
Not repaired ..
You can watch the value for Entropy and the byte histogram if this is causes by an empty file (zeros) or a file filled with a byte pattern. These are the two most common issues causing a file to be beyond repair.
Repair a JPEG header using a hex editor
Using HxD: Use Search > Find, search for FF DA using HEX data type. If not found the file is beyond repair.
It is possible multiple instances of FF DA are found, you need the LAST one. There may be a few if the JPEG included a thumbnail and preview.
Note: If you find many FF DA byte combinations then you’re probably not looking at JPEG data but random binary data. The file then is probably beyond repair.
Write down the address (Using View > Offset base you can switch to decimal numbers if you like). Now search for FF D9. Or, go to end of the file which is where you’d normally find FF D9.
Once found, select the entire block including the last FF DA upto and including FF D9 > right click > copy.
Open a new file > Paste Insert > Save as ‘image.jpg’. You have now copied the image data to a new file.
Open a known good file that was shot with the same camera, using same resolution and orientation (portrait/landscape).
Use Search > Find, search for FF DA using HEX data type.
It is possible multiple instances of FF DA are found, you need the LAST one.
Select the block preceding the FF DA bytes all the way to the start of the file (FF D8)
Switch to your image.jpg file TAB containing the image data, make sure you’re at offset 0 (zero) > Paste Insert > Save the file.
If damage was limited to the header you should now be able to open your file. Open and Save it using something like Paint.NET (free) to update the file thumbnail (if any).