Another revision of CCR Exif is up. Changes:
- The focus of this release was making the code more aware of what more recent versions of Windows Explorer (amongst other Microsoft applications) do when a person uses them to edit JPEG metadata. For some background, see my post here.
- TExifData.SaveToStream now adds or updates the Microsoft-defined OffsetSchema tag if a MakerNote is defined (see http://support.microsoft.com/kb/927527).
- Various enumerated types have acquired a xxTagMissing value to more easily determine whether the underlying tag actually exists.
- The following symbols have been added (see the documentation for more info):
- PreserveXMPData property to TCustomExifData; default is False.
- IsPadding and SetAsPadding methods to TExifTag; RemovePaddingTag method to TExifSection; RemovePaddingTags method to TCustomExifData. All these concern the padding tags Microsoft applications tend to write out.
- RemoveMetaDataFromJPEG, StreamHasExifHeader and StreamHasXMPHeader global functions to CCR.Exif.
- DigitalZoomRatio, FocalLengthIn35mmFilm, GainControl, ImageUniqueID, MakerNoteDataOffset, Rendered, SceneCaptureType, SubjectDistanceRange, ThumbnailOrientation, ThumbnailResolution, and WhiteBalanceMode properties to TCustomExifData — all surface standard tags I missed out previously.
- JPEGHeader global routine to CCR.Exif.JPEGUtils as a more flexible replacement for ParseJPEGHeader; unlike the latter, it doesn’t take a callback method, being used instead with the for/in syntax.
- The jmExif constant in CCR.Exif.JPEGUtils — use jmApp1 instead. The reason for this change is that Exif and XMP segments share the same marker number; the value of what was jmExif, then, isn’t unique to Exif.
- DefJFIFData global variable in CCR.Exif.JPEGUtils — this hasn’t been used internally since v0.9.5.
- ParseJPEGHeader function in CCR.Exif.JPEGUtils — use JPEGHeader with a for/in loop instead.
- RemoveExifDataFromJPEG functions in CCR.Exif — use the new RemoveMetaDataFromJPEG functions instead. That said, a bug in the overload that takes a stream object has been fixed.
- WriteJPEGMarkerToStream procedures in CCR.Exif.JPEGUtils — renamed WriteJPEGSegmentToStream.
- Custom exception classes slightly rearranged and documented.
- JPEG Dump and Exif List demos updated slightly.