Windows Photos: “It looks like we don’t support this file format.”
The first thing you need to check is if other photo viewers can actually open the file. For example try the ‘old’ Windows Photo Viewer or a third party photo viewer. If those fail to open the photo as well, the file may be corrupt.
If you are trying to open a RAW image (Canon CR2, Nikon NEF etc.) also try the software from the camera manufacturer. It should support the latest versions of the RAW files.
- Make sure you have installed the latest Windows Codec Pack.
- Try different software, for example this.
- Try camera manufacturer software and codecs. Sony | Canon | Nikon | Pentax | Olympus | Leica
- Make sure you are using latest version of the software that supports latest camera models.
If all fails to open the photo, you can try what software like JEPG-Repair Toolkit can do for you.
If the photos are the result of undelete, file recovery
A lot of people that contact me with this issue are trying to open photos that were recovered from a memory card for example, using software like Stellar Photo Recovery, Easeus or Recuva (etc.). In that case it is likely the photos have been incorrectly recovered. A photo can only be repaired if it actually contains most of it’s original data. Rather than repairing such photos it makes more sense to try to recover them again.
My specialized recovery software was created typically for this type of scenario: JpegDigger:
JpegDigger is the result of many real-world cases that came to me via my photo repair service. I use it to solve problems that other software can’t on a daily basis. So even if you tried other tools, it’s worth giving it a try.
JpegDigger detects JPEG & RAW – NEF (Nikon), CR2 (Canon), ORF (Olympus), RW2 (Panasonic-Lumix), ARW (Sony) and DNG (from a Leica Q2) support. Note: Should work with all TIFF based RAW photo formats. Detects non-TIFF Canon CR3 and Fuji RAF.
The JpegDigger output format is JPEG. This means a 6000×4000 CR2 file is recovered as a 6000×4000 JPEG. JpegDigger has the ability to skip corrupt files or include them and repair them to a degree where a photo viewer can open them. It tries to reconstruct fragmented photos and allows for manual reconstruction of your photos.
If all photos on a memory card are corrupt
If all or virtually all photos on a memory card are corrupt (to a degree where you can not open them) there is a chance that not the individual photos are corrupt but the file system. In case it is caused by file system corruption, the issue is that the directory can still be found (so you see file names etc.) but pointers to the files are incorrect. Do not try to solve this using chkdsk!
Instead download JpegDigger and allow it to scan the memory card. Use override to have it ignore certain file system parameters. The example below shows corrupt photos on a USB drive with a corrupt file system which were all recovered intact. Slightly different file system corruption can for example result in generic thumbnails which typically result in the infamous ‘It looks like we don’t support this file format’ message when you try to view an individual photo in Windows Photos.
If individual photos are corrupt
‘It looks like we don’t support this file format’ is what I call a catch all error message. It means there is ‘some’ problem that prevents Windows Photos from opening the file. It does not tell us what is wrong with it. It is not by definition that you can repair such a file.
To aid in repair and diagnostics of corrupt photos I made a tool called JPEG-Repair. I use it on a daily basis to repair photos that customers uploaded to my photo repair service.
Experience learns that this error indicates some problem in the photo file header. This problem however may be a single byte with an erroneous value but it can also mean the entire header is corrupt. Even more severe is if corruption extends into actual image data, but even then not all is lost: As long as some image data is present, partial repair is still possible.
Worst case scenario, and I see this quite often unfortunately, is when the photo is an ’empty file’. What I mean by that is, although the file may have a valid name and size etc., it’s contents only exists of zeros or a repeating byte pattern then you open the file in a hex editor. When you attempt to repair such a file using JPEG-Repair, it will show an entropy value of 0.00 bits/byte for the file.
JPEG header corruption
In my experience the easiest way to test this assumption and repair the file in one go, is by replacing the entire header with the header from a known good file. This can be done using a hex editor, but my tool JPEG-Repair simplifies this procedure. JPEG-Repair also strips the donor header from data is specific to the donor photo or the reference file. For example, if you’d use a hex editor, the repair photo still embeds the thumbnail preview of the donor.
RAW photo header corruption
In this case the method is different. Header repair of RAW photos (CR2, NEF, ARW etc.) is rather difficult as each camera manufacturer takes the TIFF format specification as a start point and then modifies it. Unlike with JPEG, often it’s not simply a matter of transplanting the header. I am not aware of any photo repair software that actually repairs RAW photos even though some claim they do without further explaining what it is they do.
What I am hinting at are tools like Stellar repair for Photo and Kernel Photo Repair. Rather than repairing the RAW photo they try to extract a JPEG from it. In my tests these tools under performed: They either failed (Kernel) or often extract low resolution JPEGs.
Still, extraction of JPEG is in fact often the maximum achievable when it some to corrupt RAW photos and very often it is possible to extract a high resolution JPEG. My tool JPEG-Repair’s extract tool allows you to do this, in batch, and while skipping lower resolution JPEGs.
Damage extends beyond header into image data
The header of a photo is normally only a tiny portion of the file. If it gets corrupted it is not unlikely at least some of the image data is too. In such cases simply repairing or transplanting the header will not work or is not enough. In addition we need to get rid of the corruption in the image data too.
This type of repair can be done with JPEG-Repair although it can not be done in batch mode as it requires some manual intervention. In below example we see the header of a reference file made the photo visible. We now need to manually remove the corrupt data at the top of the picture. In below example it labels this corrupt data as ‘encrypted data’ as the photo in this example was partially encrypted by ransomware. But actually we don not care how the data became corrupted, we just need to get rid of it.
The same image after I removed the corrupt portion. By now adding ‘stuff bytes’ from the same position the bytes were removed from, we can shift the image back.
I have also successfully applied this same method on RAW photos that were affected by this ransomware, the wide spread STOP/DJVU family.
Whether a corrupt photo resulting in the error message ‘It looks like we don’t support this file format’ can be repaired or not all comes down to: Does the file still contain (part of) the original image data. JPEG-repair helps you determining that by showing you the entropy value and a byte histogram:
The first picture’s entropy shows what to expect for compressed data, which most image data is. The byte histogram shows a more or less even distribution of byte values (0 – 255, or 0x00 – 0xFF). Second example is the entropy and byte histogram of a file filled with an 0xFF (255) byte pattern. Only difference with the zero filled file (3rd example) is the byte histogram (hard to see, but peaks at value 0 where the 0xFF files file peaks at value 255).
Some repairs can be ‘batched’: JPEG header transplantation and extraction of full resolution JPEGs from corrupt RAW photos. If damage extends into actual image data human intervention is required.
The following video show cases the repairs mentioned in this post: