Mercurial > geeqie.yaz
comparison src/format_fuji.c @ 101:847e4bc6b54c
Tue Nov 7 15:35:59 2006 John Ellis <johne@verizon.net>
* exif.c: Use new format_raw_exif_offset() function to find Exif in
raw files.
* filelist.c: Add orf and pef to displayed file types.
* format_canon.h, format_fuji.h: Update to new #define format.
* format_fuji.c: Use same offset for Exif as the jpeg image as the
Exif is always embedded in the jpeg and assuming offset of 12 is
just broken.
* format_nikon.h: Update to new #define format, and add pentax here
as finding the jpeg will be same code.
* format_olympus.[ch]: Support Olympus raw files with embedded jpegs,
not all raw files will have a jpeg, but all appear to have Exif tags.
* format_raw.[ch]: Add new camera types, and add a debugging facility
to easily list all tags within tiff files (see format_raw.h to enable).
author | gqview |
---|---|
date | Tue, 07 Nov 2006 21:00:50 +0000 |
parents | a8c9992320f4 |
children | 9c355d5c8619 |
comparison
equal
deleted
inserted
replaced
100:deafec7cd99f | 101:847e4bc6b54c |
---|---|
46 memcmp(data, "FUJIFILM", 8) != 0) | 46 memcmp(data, "FUJIFILM", 8) != 0) |
47 { | 47 { |
48 return FALSE; | 48 return FALSE; |
49 } | 49 } |
50 | 50 |
51 /* offset to jpeg is embedded at bytes 84-87 */ | |
51 io = GUINT32_FROM_BE(*(guint32*)(data + 84)); | 52 io = GUINT32_FROM_BE(*(guint32*)(data + 84)); |
52 eo = *image_offset + 12; | 53 if (io + 4 > len) return FALSE; |
53 | 54 |
54 /* verify jpeg marker */ | 55 /* verify jpeg marker */ |
55 if (memcmp(data + io, "\xff\xd8\xff\xe1", 4) != 0) | 56 if (memcmp(data + io, "\xff\xd8\xff\xe1", 4) != 0) |
56 { | 57 { |
57 return FALSE; | 58 return FALSE; |
58 } | 59 } |
59 | 60 |
61 /* Exif is stored in the jpeg, so use the same offset */ | |
62 eo=io; | |
63 | |
60 if (image_offset) *image_offset = io; | 64 if (image_offset) *image_offset = io; |
61 if (exif_offset) *exif_offset = eo; | 65 if (exif_offset) *exif_offset = eo; |
62 | |
63 printf("raw Fuji format file\n"); | |
64 | 66 |
65 return TRUE; | 67 return TRUE; |
66 } | 68 } |
67 | 69 |
68 | 70 |