From 401ba3ff3b23f3b3e1005418ce397651de09a936 Mon Sep 17 00:00:00 2001 From: Olivier Tilloy Date: Wed, 10 Oct 2007 23:01:24 +0200 Subject: Implemented feature request tracked by bug #149212 (Add access to tag labels): added method tagDetails(key) to class Image that returns a tuple containg the tag name and its description. --- src/libpyexiv2.cpp | 19 +++++++++++++++++++ src/libpyexiv2.hpp | 3 +++ src/libpyexiv2_wrapper.cpp | 2 ++ 3 files changed, 24 insertions(+) diff --git a/src/libpyexiv2.cpp b/src/libpyexiv2.cpp index 06c6d54..96b9ba1 100644 --- a/src/libpyexiv2.cpp +++ b/src/libpyexiv2.cpp @@ -285,6 +285,25 @@ namespace LibPyExiv2 throw Exiv2::Error(METADATA_NOT_READ); } + boost::python::tuple Image::tagDetails(std::string key) + { + std::string keyFamily = key.substr(0, 4); + if (keyFamily == "Exif") + { + Exiv2::ExifKey exifKey = Exiv2::ExifKey(key); + std::string tagLabel = exifKey.tagLabel(); + std::string tagDesc = std::string(Exiv2::ExifTags::tagDesc(exifKey.tag(), exifKey.ifdId())); + return boost::python::make_tuple(tagLabel, tagDesc); + } + else if (keyFamily == "Iptc") + { + Exiv2::IptcKey iptcKey = Exiv2::IptcKey(key); + std::string tagLabel = iptcKey.tagLabel(); + std::string tagDesc = std::string(Exiv2::IptcDataSets::dataSetDesc(iptcKey.tag(), iptcKey.record())); + return boost::python::make_tuple(tagLabel, tagDesc); + } + } + boost::python::tuple Image::getThumbnailData() { if(_dataRead) diff --git a/src/libpyexiv2.hpp b/src/libpyexiv2.hpp index 736d1cf..4c867de 100644 --- a/src/libpyexiv2.hpp +++ b/src/libpyexiv2.hpp @@ -108,6 +108,9 @@ namespace LibPyExiv2 // than the highest existing one. boost::python::tuple deleteIptcTag(std::string key, unsigned int index); + // Return a tuple containing the name of the tag and its description. + boost::python::tuple tagDetails(std::string key); + // Read and write access to the thumbnail embedded in the image. // Return a tuple containing the format of the thumbnail ("TIFF" or diff --git a/src/libpyexiv2_wrapper.cpp b/src/libpyexiv2_wrapper.cpp index dc9152f..50519d4 100644 --- a/src/libpyexiv2_wrapper.cpp +++ b/src/libpyexiv2_wrapper.cpp @@ -54,6 +54,8 @@ BOOST_PYTHON_MODULE(libpyexiv2) .def("_Image__setIptcTag", &Image::setIptcTag) .def("_Image__deleteIptcTag", &Image::deleteIptcTag) + .def("tagDetails", &Image::tagDetails) + .def("getThumbnailData", &Image::getThumbnailData) .def("setThumbnailData", &Image::setThumbnailData) .def("deleteThumbnail", &Image::deleteThumbnail) -- cgit