Re: CALL for DISCUSSION: eXIf 20170115
John Bowler <[email protected]>
| Newsgroups | gmane.comp.graphics.png.general |
|---|---|
| Message-ID | <CAP7U3988NeLeLkdkbpjj-xG1Z4OR85vha2o-DJsf7o=OVCgxyQ@mail.gmail.com> |
On Sat, Jan 21, 2017 at 4:21 AM, Glenn Randers-Pehrson <[email protected]> wrote: > My demos had the "ExifID" because that's what ImageMagick gave me when I ran > "convert file.jpg file.exif", and I thought that was what an "exif profile" > was. As I understood Jason's comment and John's earlier remarks, that was a > mistake. Part of the problem I have understanding the data is that, as I understand it, it is a by-design partial TIFF. The structure is that it contains TIFF IFDs (Image File Directories) for two images. Each IFD contains a set of pointers (offsets) to the data outside the IFD for the image. CIPA 2016 isn't very specific about what can occur in a JPEG EXIF APP1 marker apart from that, but what I see is: IFD[0]: the main image except that it's just metadata because the real image is outside the APP1 marker in the JPEG! IFD[1]: the thumbnail, which is actually inside the APP1 marker segment IFD['EXIF']: the metadata that CIPA 2016 defines plus some (MakerNote) that it doesn't but has been reversed engineered for some manufacturers. IFD['GPS']: the GPS information I believe that if the APP1 is extracted without the EXIF\0\0 ID field it should be just a TIFF file. Certainly if I take one of the JPEG files I have and delete the first 12 bytes (I used vi, but tail works just fine) tiffdump will display IFD[0] and IFD[1] from the result. Another part of the problem is that all these programs, tiffdump, tiffinfo, exiftool exif (from exiv2) only work with the particular set of TIFF data they are designed to work with. I don't know if there is a general TIFF dumping tool out there, but at present the only thing I have is my own jpegdump; this displays all the IFDs it finds. Anyway, the reason for referencing the JPEG APP1 format is that this deals with the issue posed by the fact that IFD[0] is, in the native TIFF, the whole image. The EXIF spec defines how to reduce IFD[0] when the image is held in a different form, as in JPEG and, potentially, PNG. If this isn't done IFD[0] will have out-of-bounds offsets, fortunately, however, exiv2 identifies these and produces warnings. -- John Bowler <[email protected]> +1 (541) 450-9885 PO BOX 3151 KERBY OR 97531-3151 USA ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot