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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.