|
Hi all,
some tags are stored as an array, so you have to select a index for a specific value, examples are: - Exif.Image.LensInfo is of type rational[4] - Exif.Image.AsShotNeutral is of type rational[3] - Exif.SubImage1.CFAPattern is of type Byte[4] Current libkexiv2 has a method the get a component of rational-array (getExifTagRational), but set method is not capable of. Also methods for set and get Longs and Strings are not capable of a specific index. So is there a plan to clean that up? One thing that would also be wise is something like exiftools composite tags, I think. Currently every component is parsing makernotes on their own when no standard exif.photo or exif.image tags exists or do it not. This is needed as for example older canon dslrs have metering mode and exposure program only in makernotes on a own coding, other samples are lensid strings or something like subject distance which is in nikon images only in makernotes and have to be decoded be a specific function. So why not bundle this knownledge to a middle-layer - composite tags. The questions is also where to implement that middle layer, libkexiv2 or exiv2? Regards, Jens _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
|
> One thing that would also be wise is something like exiftools composite tags,
> I think. Currently every component is parsing makernotes on their own when no > standard exif.photo or exif.image tags exists or do it not. > This is needed as for example older canon dslrs have metering mode and > exposure program only in makernotes on a own coding, other samples are lensid > strings or something like subject distance which is in nikon images only in > makernotes and have to be decoded be a specific function. > So why not bundle this knownledge to a middle-layer - composite tags. The > questions is also where to implement that middle layer, libkexiv2 or exiv2? Exiv2 has "easy-access" functions [1], [2] to help with the selection of a tag which may be stored in different places. Together with "pretty-print" functions which convert each individual proprietary tag value into a standard format, the easy-access functions can be used to access a particular piece of information in a common format without having to know about where it is stored (e.g., ISO, lens name). The current Exiv2 architecture doesn't easily allow for "composite tags" the way exiftool implements them, i.e., virtual tags (which don't really exist in the metadata) computed from several existing tag values. There is a plan for a "Unified Metadata Container" [3], which will fix this, but that's a rather major change. In the meantime, "pretty-print" functions are used as a workaround of sorts for such functionality, since it is possible to access other Exif tags from the pretty-print function for a specific tag. For example, the Nikon lens name for some Nikon cameras is available through the pretty-print function of the Exif.NikonLd3.LensIDNumber tag. But the value of this tag alone doesn't map to the lens name. The function needs to look up half a dozen other tags to determine the lens name (besides those required to decrypt the relevant makernote portion). Andreas [1] http://www.exiv2.org/doc/easyaccess_8hpp.html [2] http://dev.exiv2.org/repositories/entry/exiv2/trunk/samples/easyaccess-test.cpp [3] http://dev.exiv2.org/versions/show/31 _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
|
In reply to this post by Jens Müller-10
> Hi all, > > some tags are stored as an array, so you have to select a index for a > specific value, examples are: > - Exif.Image.LensInfo is of type rational[4] > - Exif.Image.AsShotNeutral is of type rational[3] > - Exif.SubImage1.CFAPattern is of type Byte[4] > > Current libkexiv2 has a method the get a component of rational-array > (getExifTagRational), but set method is not capable of. Also methods for > set and get Longs and Strings are not capable of a specific index. So is > there a plan to clean that up? You can read all components of all formats with getExifTagVariant() currently. Write support is not there. I currently have no plan to clean that up, because I didn't know of any need for this. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
| Free forum by Nabble | Edit this page |
