Return-Path: <tiff-bounces@lists.maptools.org>
Received: from inas021.isp.belgacom.be (localhost [127.0.0.1])
        by inav013.isp.belgacom.be (8.12.11/8.12.11/Skynet-IN-AV-3.00) with ESMTP id jBDIpxS3030914
        for <joris.at.lebbeke@skynet.be>; Tue, 13 Dec 2005 19:51:59 +0100
        (envelope-from <tiff-bounces@lists.maptools.org>)
Received: from inmx001.isp.belgacom.be (inmx001.isp.belgacom.be [195.238.5.1])
        by inas021.isp.belgacom.be (8.12.11/8.12.11/Skynet-IN-AS-2.03) with ESMTP id jBDIptrP004159
        for <joris.at.lebbeke@skynet.be>; Tue, 13 Dec 2005 19:51:57 +0100
        (envelope-from <tiff-bounces@lists.maptools.org>)
Received: from duke.maptools.org (r153.dmsolutions.ca [209.217.116.153] (may be forged))
        by inmx001.isp.belgacom.be (8.12.11/8.12.11/Skynet-IN-2.32) with ESMTP id jBDIpp8O016134
        for <joris.at.lebbeke@skynet.be>; Tue, 13 Dec 2005 19:51:52 +0100
        (envelope-from <tiff-bounces@lists.maptools.org>)
Received: from duke.maptools.org (duke.maptools.org [127.0.0.1])
	by duke.maptools.org (8.12.11/8.12.10) with ESMTP id jBDIdxrX013294;
	Tue, 13 Dec 2005 13:40:24 -0500
Received: from smtpauth08.mail.atl.earthlink.net
	(smtpauth08.mail.atl.earthlink.net [209.86.89.68])
	by duke.maptools.org (8.12.11/8.12.10) with ESMTP id jBDIdwv6013290
	for <tiff@lists.maptools.org>; Tue, 13 Dec 2005 13:39:58 -0500
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net;
	b=RSfg/0p0FiBg55uc4QGNVRJJyvt+iPrdGk6IXmaxcnywt29wX+TINRZvw+qfIzsM;
	h=Received:Message-Id:X-Sender:X-Mailer:Date:To:From:Subject:In-Reply-To:References:Mime-Version:Content-Type:X-ELNK-Trace:X-Originating-IP;
Received: from [209.116.70.133] (helo=rdu-closinger.earthlink.net)
	by smtpauth08.mail.atl.earthlink.net with asmtp (Exim 4.34)
	id 1EmF49-00073d-7N
	for tiff@lists.maptools.org; Tue, 13 Dec 2005 13:39:57 -0500
Message-Id: <6.0.0.22.1.20051213133123.01d27518@pop.earthlink.net>
X-Sender: losinger@earthlink.net@pop.earthlink.net
X-Mailer: QUALCOMM Windows Eudora Version 6.0.0.22
Date: Tue, 13 Dec 2005 13:40:10 -0500
To: <tiff@lists.maptools.org>
From: Chris Losinger <losinger@earthlink.net>
Subject: Re: [Tiff] Writing EXIF data?
In-Reply-To: <008201c60011$88241d30$6701a8c0@dimension4600c>
References: <Pine.LNX.4.63.0512121417170.20603@vgfl.cnhywyhpnf.bet>
	<Pine.SOC.4.60.0512121643050.4804@blade.simplesystems.org>
	<Pine.LNX.4.63.0512121452030.20603@vgfl.cnhywyhpnf.bet>
	<Pine.SOC.4.60.0512121747160.4804@blade.simplesystems.org>
	<Pine.LNX.4.63.0512121813540.20603@vgfl.cnhywyhpnf.bet>
	<Pine.SOC.4.60.0512122319230.4804@blade.simplesystems.org>
	<Pine.LNX.4.63.0512122340130.20603@vgfl.cnhywyhpnf.bet>
	<20051213085705.GA15548@ak4719.spb.edu>
	<Pine.LNX.4.63.0512130921500.20603@vgfl.cnhywyhpnf.bet>
	<008201c60011$88241d30$6701a8c0@dimension4600c>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
X-ELNK-Trace: be870c3544bdf80c1aa676d7e74259b7b3291a7d08dfec79b79765abd12447adf73fe5ca943e55f5350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.116.70.133
X-BeenThere: tiff@lists.maptools.org
X-Mailman-Version: 2.1.4
Precedence: list
List-Id: TIFF and libtiff discussion <tiff.lists.maptools.org>
List-Unsubscribe: <http://lists.maptools.org/mailman/listinfo/tiff>,
	<mailto:tiff-request@lists.maptools.org?subject=unsubscribe>
List-Archive: <http://lists.maptools.org/mailman/private/tiff>
List-Post: <mailto:tiff@lists.maptools.org>
List-Help: <mailto:tiff-request@lists.maptools.org?subject=help>
List-Subscribe: <http://lists.maptools.org/mailman/listinfo/tiff>,
	<mailto:tiff-request@lists.maptools.org?subject=subscribe>
Sender: tiff-bounces@lists.maptools.org
Errors-To: tiff-bounces@lists.maptools.org
X-UIDL: 000000000023ceae.00000f6e
X-MSP-STORE: Tue, 13 Dec 2005 19:52:04 +0100
Status:   

At 01:16 PM 12/13/2005, Joshua Muskovitz wrote:
>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.

         -c
__________________________
Chris Losinger
Smaller Animals Software, Inc.				
http://www.smalleranimals.com


_______________________________________________
Tiff mailing list: Tiff@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/tiff
http://www.remotesensing.org/libtiff/
