NEED HELP: Need a program that will extract files from a single file

RDMustang1

Diamond Member
Feb 7, 2001
4,139
0
76
Here's my situation..

I was on my honeymoon and took some pictures. My compact flash card went bad, Lexar recovered the data from it but all the pictures are in one large file (EXIF00063.jpg) - 350MB.

I have a feeling that all my lost pictures are in there but I don't know how to get them out. I tried opening it with winrar, winzip, and another extract program I found..

Does anyone have any idea how I can get my pictures back? PLEASE HELP!
 

Cheetah8799

Diamond Member
Apr 12, 2001
4,508
0
76
Very strange they would give you a file with .jpg which isn't an image file itself. Did you ask them what format it is really in?
 

scottish144

Banned
Jul 20, 2005
835
0
0
When u open the file, are all the pictures in one big image? (in a grid?) If so, CROP LIKE HELL!!!! Copy and Crop. I dunno how many pictures u took, but make as many copies of the file and crop each one down to size. It'l take time, but it should work. If not try Cutter 4.5

http://downloads.zipgenius.it/zgtools/index.htm (bottom of page)

 

Thyme

Platinum Member
Nov 30, 2000
2,330
0
0
Originally posted by: Cheetah8799
Very strange they would give you a file with .jpg which isn't an image file itself. Did you ask them what format it is really in?

Is it a jpeg?

Jpegs are lossy, so I'd guess some missing bytes in the middle of it would still produce an image, even if it looked wrong.
 

jjones

Lifer
Oct 9, 2001
15,424
2
0
Yeah, I bet it's one huge image. If it is, that kind of sucks that it was done that way, but I guess it's better than nothing.
 

fishbits

Senior member
Apr 18, 2005
286
0
0
If it is one huge actual .jpg, you're in luck, all things considered. What it might also be is all the image files tip-to-tail in one file. In which case you'd probably need a hex editor program and some familiarity with the jpg file format to get them out of there (or someone with the above).

Now, how is the data normally stored on the card? As good-to-go jpg files? That's my guess. Just hoping it's not some proprietary data format that's only converted to jpg when downloaded off the camera, and Lexar just decided to name that data "filename.jpg."

Good luck man! And save backup copies of that big file until you're POSITIVE you've got everything you can out of it.
 

everman

Lifer
Nov 5, 2002
11,288
1
0
There should be some kind of program to parse out the individual pictures, I'd call them and ask about it.
 

RDMustang1

Diamond Member
Feb 7, 2001
4,139
0
76
Basically they supplied the 300 pictures that were on the good part of the card and then one 350MB file that when I open it it shows the first lost picture.. I was thinking a hex editor but that would take me learning quite a bit not to mention a heck of a lot of time. I'm seriously considering it but wondering if there is an easier way..

What happened was I tried formatting the card after it went bad.. I accepted that I lost the pictures (but I really want them back because they are of my honeymoon).. WHen I formatted it probably lost all remaining information of the file structure of the bad sectors..

So I can't crop them because it reads them as one image. It's just the section of the disk that went bad.

Any other ideas? I'm desperate...
 

fishbits

Senior member
Apr 18, 2005
286
0
0
OK, a lot of data files have a header with various fields. Maybe room for an info string, then say the number of bytes of data, then the color depth... stuff like that. Then the data itself, then maybe some kind of closing footer, but likely not. Now I don't know what a .jpg would look like, but in a hex editor it might be the kind of pattern you could actually spot more easily than it sounds. Then again, maybe not :( Or maybe you could dig up some docs on the 'net with specs on the format.

Being able to see the first lost picture sounds like a good thing. The jpg viewer probably reads "a jpg image, 16,000 bytes.... processes that and says "I'm done, it's Miller time!" and ignores the following data which may well be good jpgs end-to-end.

It would definitely take some time, but the learning might not be as steep as intuition would say. And maybe someone will pop in the thread who's proficient with this sort of thing. If the structure is like I'm guessing and you can figure out the length field, that might be some help to (if there is one).

Anyhow, will pop back in tomorrow to see how it's going.
 

statik213

Golden Member
Oct 31, 2004
1,654
0
0
Originally posted by: fishbits
OK, a lot of data files have a header with various fields. Maybe room for an info string, then say the number of bytes of data, then the color depth... stuff like that. Then the data itself, then maybe some kind of closing footer, but likely not. Now I don't know what a .jpg would look like, but in a hex editor it might be the kind of pattern you could actually spot more easily than it sounds. Then again, maybe not :( Or maybe you could dig up some docs on the 'net with specs on the format.

Being able to see the first lost picture sounds like a good thing. The jpg viewer probably reads "a jpg image, 16,000 bytes.... processes that and says "I'm done, it's Miller time!" and ignores the following data which may well be good jpgs end-to-end.

It would definitely take some time, but the learning might not be as steep as intuition would say. And maybe someone will pop in the thread who's proficient with this sort of thing. If the structure is like I'm guessing and you can figure out the length field, that might be some help to (if there is one).

Anyhow, will pop back in tomorrow to see how it's going.

Well, don't files usually have an EOF character marking the end of the file? I could be wrong, but the EOF is a `physical' marking on a file saying it ends here. If i'm wrong then everything below is useless. Can someone confirm?

So you would open your 350MB file in a hex editor and look for the first EOF char (figure out it's ASCII hex code from here: http://www.softwareforeducation.com/sms32v50_manual/220-ascii.htm
then select everything from the start to the EOF, copy and paste it as a .jpg. See if that works.

Now, comes the tricky part. The next file is probably not going to start soon after the EOF char as the next file would start at the begiging of the next sector. If you can fgure out how big each sector is on your 512 MB CF card then it might be easy. Say, your sector size is 4k and your first EOF was found at byte 10000. Then the next file should start at this location:
ceiling(10000 / 4096) * 4096 = 3 * 4096 = 12288.
Look for the next EOF starting at 12288 (now be careful to +/- a 1 depending on how you index) and select everything in between and save as a JPG.
Makes any sense at all?

Now, here's one thing that can go seriously wrong. Files usually aren't written in contigous blocks, so if you look at a sequence of sectors you migh get a picture like this:
... | part 10 of file #1 | part 11 of file #1 | part 1 of file #2 | part 2 of file #2 | part 3 of file #2 | part 13 of file #1 | ...
So, that will fvck things up big time and there's probably no way of telling which byte came from where. But if your card had been completely empty and you hadn't been deleting pictures and taking new one chances are that the data would be in contigous blocks.

Well, g'luck!


-K