 |
Exiv2
|
24 #include "exiv2lib_export.h"
27 #include "metadatum.hpp"
49 typedef std::ostream& (*PrintFct)(std::ostream&,
const Value&,
const ExifData* pExifData);
69 explicit GroupName(
const std::string&
groupName);
113 static void taglist(std::ostream& os);
118 static const char* sectionName(
const ExifKey& key);
120 static uint16_t defaultCount(
const ExifKey& key);
127 static bool isMakerGroup(
const std::string&
groupName);
133 static bool isExifGroup(
const std::string&
groupName);
155 explicit ExifKey(
const std::string& key);
165 ExifKey(uint16_t tag,
const std::string& groupName);
187 void setIdx(
int idx);
192 virtual std::string key()
const;
193 virtual const char* familyName()
const;
197 virtual std::string tagName()
const;
198 virtual uint16_t tag()
const;
199 virtual std::string tagLabel()
const;
201 std::string tagDesc()
const;
203 TypeId defaultTypeId()
const;
212 virtual ExifKey* clone_()
const;
217 std::auto_ptr<Impl> p_;
229 #endif // #ifndef TAGS_HPP_
const char * name_
Section name (one word)
Definition: tags_int.hpp:217
const TagInfo * tagInfo_
Tag info.
Definition: tags.cpp:242
Key & operator=(const Key &rhs)
Assignment operator. Protected so that it can only be used by subclasses but not directly.
Definition: metadatum.cpp:42
Olympus makernote tags. References: [1] Exif file format, Appendix 1: MakerNote of Olympus Digicams ...
Nikon makernote tags. References: [1] MakerNote EXIF Tag of the Nikon 990 by Max Lyons [2] Exif fil...
ExifKey(const std::string &key)
Constructor to create an Exif key from a key string.
Definition: tags.cpp:341
void taglist(std::ostream &os, IfdId ifdId)
Print the list of tags for ifdId to the output stream os.
Definition: tags_int.cpp:2483
TagListFct tagList_
Tag list.
Definition: tags.hpp:64
Impl()
Default constructor.
Definition: tags.cpp:252
virtual std::string tagLabel() const
Return a label for the tag.
Definition: tags.cpp:387
Common interface for all types of values used with metadata.
Definition: value.hpp:51
int ifdId_
IFD id.
Definition: tags.hpp:61
const typedef TagInfo *(* TagListFct)()
A function returning a tag list.
Definition: tags.hpp:51
void decomposeKey(const std::string &key)
Parse and convert the key string into tag and IFD Id. Updates data members if the string can be decom...
Definition: tags.cpp:268
const char * ifdName_
IFD name.
Definition: tags.hpp:62
std::auto_ptr< Key > AutoPtr
Shortcut for a Key auto pointer.
Definition: metadatum.hpp:47
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:46
The details of an Exif group. Groups include IFDs and binary arrays.
Definition: tags.hpp:57
virtual std::string tagName() const
Return the name of the tag (which is also the third part of the key)
Definition: tags.cpp:382
const char * name_
One word tag label.
Definition: tags.hpp:88
const TagInfo * tagList(IfdId ifdId)
Return the tag list for ifdId.
Definition: tags_int.cpp:2493
uint16_t tag_
Tag value.
Definition: tags.cpp:243
@ asciiString
Exif ASCII type, 8-bit byte.
Definition: types.hpp:121
const char * groupName_
Group name, unique for each group.
Definition: tags.hpp:63
const TagInfo * iopTagList()
Return read-only list of built-in IOP tags.
Definition: tags_int.cpp:2419
std::string groupName_
The group name.
Definition: tags.cpp:246
int ifdId_
Link to the (preferred) IFD.
Definition: tags.hpp:91
ExifKey & operator=(const ExifKey &rhs)
Assignment operator.
Definition: tags.cpp:354
void makeKey(uint16_t tag, IfdId ifdId, const TagInfo *tagInfo)
Set the key corresponding to the tag, ifdId and tagInfo. The key is of the form 'Exif....
Definition: tags.cpp:304
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2540
Canon makernote tags. References: [1] EXIF MakerNote of Canon by David Burren [2] Canon makernote t...
int idx() const
Return the index (unique id of this key within the original Exif data, 0 if not set)
Definition: tags.cpp:425
std::ostream &(* PrintFct)(std::ostream &, const Value &, const ExifData *pExifData)
Type for a function pointer for functions interpreting the tag value.
Definition: tags.hpp:49
int idx_
Unique id of the Exif key in the image.
Definition: tags.cpp:245
bool operator==(const std::string &key) const
Comparison operator for use with the find template.
Definition: tags.cpp:90
Abstract base class defining the Key of a metadatum. Keys are used to identify and group metadata.
Definition: metadatum.hpp:44
TypeId typeId_
Type id.
Definition: tags.hpp:93
std::string tagDesc() const
Return the tag description.
Definition: tags.cpp:393
int16_t count_
The number of values (not bytes!), 0=any, -1=count not known.
Definition: tags.hpp:94
virtual std::string groupName() const
Return the name of the group (the second part of the key)
Definition: tags.cpp:377
TypeId defaultTypeId() const
Return the default type id for this tag.
Definition: tags.cpp:399
std::ostream & printValue(std::ostream &os, const Value &value, const ExifData *)
Default print function, using the Value output operator.
Definition: tags_int.cpp:2547
bool operator==(int ifdId) const
Comparison operator for IFD id.
Definition: tags.cpp:114
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition: tags.hpp:140
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2533
std::auto_ptr< ExifKey > AutoPtr
Shortcut for an ExifKey auto pointer.
Definition: tags.hpp:143
EXIV2API std::ostream & operator<<(std::ostream &os, const DataSet &dataSet)
Output operator for dataSet.
Definition: datasets.cpp:709
bool isMakerIfd(IfdId ifdId)
Return true if ifdId is a makernote IFD id. (Note: returns false for makerIfd)
Definition: tags_int.cpp:2445
uint16_t tagNumber(const std::string &tagName, IfdId ifdId)
Return the tag number for one combination of IFD id and tagName. If the tagName is not known,...
Definition: tags_int.cpp:2608
virtual const char * familyName() const
Return an identifier for the type of metadata (the first part of the key)
Definition: tags.cpp:372
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
virtual std::string key() const
Return the key of the metadatum as a string. The key is of the form 'familyName.groupName....
Definition: tags.cpp:367
const char * voc_
Vocabulary string.
Definition: tags_int.hpp:247
Exif and IPTC conversions to and from XMP.
TypeId
Exiv2 value type identifiers.
Definition: types.hpp:119
static const char * typeName(TypeId typeId)
Return the name of the type, 0 if unknown.
Definition: types.cpp:102
Tag information.
Definition: tags.hpp:74
const TagInfo * exifTagList()
Return read-only list of built-in Exif IFD tags.
Definition: tags_int.cpp:2096
std::string key_
Key
Definition: tags.cpp:247
bool operator==(const TagDetails &td, const LensTypeAndFocalLengthAndMaxAperture <fl)
Compare tag details with a lens entry.
Definition: canonmn_int.cpp:2820
std::string tagName() const
Return the name of the tag.
Definition: tags.cpp:257
const TagInfo * gpsTagList()
Return read-only list of built-in GPS tags.
Definition: tags_int.cpp:2316
IfdId ifdId_
The IFD associated with this tag.
Definition: tags.cpp:244
const TagInfo * ifdTagList()
Return read-only list of built-in IFD0/1 tags.
Definition: tags_int.cpp:1709
int ifdId() const
Return the IFD id as an integer. (Do not use, this is meant for library internal use....
Definition: tags.cpp:420
virtual ~ExifKey()
Destructor.
Definition: tags.cpp:352
TagInfo(uint16_t tag, const char *name, const char *title, const char *desc, int ifdId, int sectionId, TypeId typeId, int16_t count, PrintFct printFct)
Constructor.
Definition: tags.cpp:124
PrintFct printFct_
Pointer to tag print function.
Definition: tags.hpp:95
const char * desc_
Short tag description.
Definition: tags.hpp:90
void setIdx(int idx)
Set the index.
Definition: tags.cpp:362
const TagInfo * tagInfo(uint16_t tag, IfdId ifdId)
Return the tag info for tag and ifdId.
Definition: tags_int.cpp:2500
virtual uint16_t tag() const
Return the tag number.
Definition: tags.cpp:405
BasicError< char > Error
Error class used for exceptions (std::string based)
Definition: error.hpp:324
const SectionInfo sectionInfo[]
List of all defined Exif sections.
uint16_t tag_
Tag.
Definition: tags.hpp:87
int sectionId_
Section id.
Definition: tags.hpp:92
Internal Pimpl structure with private members and data of class ExifKey.
Definition: tags.cpp:210
std::string g_
Group name.
Definition: tags.hpp:70
Casio MakerNote implemented using the following references: Casio MakerNote Information by GVsoft,...
const char * title_
Tag title.
Definition: tags.hpp:89
IfdId groupId(const std::string &groupName)
Return the group id for a group name.
Definition: tags_int.cpp:2525
static const char * familyName_
"Exif"
Definition: tags.cpp:240
bool isExifIfd(IfdId ifdId)
Return true if ifdId is an Exif IFD id.
Definition: tags_int.cpp:2455
Error class for exceptions, log message class.
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434