Or rather, he had a fabulous collection.
A while back, his web provider's disks went belly-up, and munched it.
Now don't start on backups. We've all made mistakes like that. Hell, some of us have made mistakes like that in our professional lives. It happens.
He paid money for data recovery, and got a lot back, but not all of it is intact. Here are a pair of examples:
They're both offset errors. When the file was recovered, a block of null data got crammed into the middle. In the first case, it's easily repairable by just slicing the chunks out and reassembling them. In the second, the break happened in the middle of an image block, and it wonked up the colors.
I've exhausted my binary file skillz identifying the offset error, determining that the junk actually is a pile of zeros and showing that by cleaning up the bad data, the color information in the really wonky images is still there. I haven't been able to manually remove the appropriate number of zeros to patch the file back together. All the jpeg fix utilities I've found either just repair corrupted headers or are tailored to "restore" image quality lost when an image is over-compressed. I haven't found anything that can analyze the data stream and identify junk data.
If you know any serious JPEG code wonks, please pass this along. If there's a way to programmatically identify the bad data and stitch it back together, help would be much appreciated.