I am at the moment rewriting one of the key features of ExIf 35, its ExIf writing tool. I am switching from the .NET Image class’s PropertyItem stuff to .NET’s Bitmap Metadata class. I am making this change because of a recent compression issue that has come up with using the Image class. It is also believed that the metadata class is more useful since it will work with all of my metadata that I am fighting with (all my enemies in one basket).
Now, the conversion isn’t really the issue, but having to relive some of the stupidity that has been left in ExIf, or its implementation, on the other hand, is a concern for me. In ExIf there lives two properties, ImageTitle (0x010D) and ImageDescription (0x010E). These two were designed as a pair, and were supposed to be implemented as such. In the present day of metadata reading though, it would seem that everything uses “ImageDescription”, and nothing cares for “ImageTitle”, even when the field that the utility claims to show is “title”. It is also interesting to note that once ExIf evolved, it was decided that there should be a title space, so “DocumentTitle” was born, several properties down the list. Now, ExIf has 2 titles and a description. It doesn’t really matter though, because nothing much uses either title space, everything wants to read and write description. Microsoft complicates this by throwing their own XMP field into the mix, “Comment”.
I remember now why I was glad that this portion of the code was finished, so I wouldn’t have to face the back end of ExIf again.