2008.06.20 11:41 "[Tiff] Adobe are idiots [rant about new DNG 1.2 spec]", by Phil Harvey

Does anyone here use libtiff to process DNG images? Well, you have some work to do:

I just learned yesterday that Adobe had released the DNG 1.2 specification (back in April).

What was Adobe thinking!? While the old specification is TIFF- compatible, these new changes are not.

Adobe has introduced a new "ExtraCameraProfiles" tag of type LONG that contains offsets to new Camera Profile ID's, but the new IFD's do not follow the standard TIFF IFD structure. Instead, the new IFD contains a TIFF-like header (with a magic number of 0x4352 instead of 0x002a), and uses offsets that are relative to the start of this header.

The effect of this change is to make the new files totally incompatible with any existing code.

If they really wanted to create a self-contained IFD that uses relative offsets (which isn't a bad idea), they should have implemented it differently: Instead of storing multiple IFD's as LONG offsets, they should have written the entire IFD tree as UNDEFINED, and stored multiple IFD's using the next IFD pointer, similar to IFD0, IFD1, etc. This would have allowed older software to rewrite the image without destroying the new information, and would have made things a lot easier for developers.

Honestly, I wonder sometimes what sort of idiots they hire at Adobe and Microsoft, because both companies have made huge blunders when attempting to add new tags to TIFF-format files.

Sorry about the attitude, but I just wasted all day yesterday adding support for these new changes, while it would have taken only a few minutes if Adobe had implemented it properly.

- Phil