2005.12.13 18:40 "Re: [Tiff] Writing EXIF data?", by Chris Losinger
It seems the concensus is that libtiff is really great for reading and writing TIFF files, fairly useless in reading EXIF-encoded TIFF files, and completely useless in writing EXIF-encoded TIFF files. Equally bad is that libtiff expects a valid image in the first IFD, and so is again fairly useless in parsing EXIF-encoded JPEG files, and completely useless in writing them.
Alas, I require the ability to read and write EXIF information in both TIFF and JPEG formats. I've given up on libtiff and begun using libexif for the JPEG side of things, but it is the canonical example of the actively used, yet completely undocumented library. Hopefully, my need to support TIFF will wait long enough for libtiff to catch up.
LibTiff (via the Pritave SubDir stuff) can read EXIF in TIFF pretty well (at least tags in the main EXIF IFD). i've used it for a while. but, for EXIF in JPG, i went ahead and wrote my own decoder - can't use LibExif because of the GPL.
but, writing EXIF is a huge hassle, because of Maker Note data. most Maker Note data is just more TIFF-style tags, but with little vendor-specific nuances. the one that causes the most trouble is that some vendors use tag and data offsets inside the Maker Note IFD that are based on the start of the EXIF IFD itself, instead of being based on the start of the Maker Note IFD. so, modifiying anything before the Maker Note IFD will break those offsets. and since Maker Notes are always undocumented (though they may have been reverse-engineered in some cases). this wouldn't be a problem if users wanted to create EXIF data from scratch, since there would be no MN data to worry about; but most users want to *edit* EXIF data in files created by cameras. for that reason alone, i don't make EXIF writing available in any of my stuff.
Smaller Animals Software, Inc.