171 imgStruct, recOffset, imgCharacter, otherTags, exifFormat,
172 exifVersion, imgConfig, userInfo, relatedFile, dateTime,
173 captureCond, gpsTags, iopTags, mpfTags, makerTags, dngTags, panaRaw,
174 tiffEp, tiffPm6, adobeOpi,
227 template <
int N, const TagDetails (&array)[N]>
235 os <<
"(" << value <<
")";
241 #define EXV_PRINT_TAG(array) printTag<EXV_COUNTOF(array), array> 247 template <
int N, const TagDetailsBitmask (&array)[N]>
250 const uint32_t val =
static_cast<uint32_t
>(value.
toLong());
251 if (val == 0 && N > 0) {
256 for (
int i = 0; i < N; ++i) {
260 if (val & td->
mask_) {
274 #define EXV_PRINT_TAG_BITMASK(array) printTagBitmask<EXV_COUNTOF(array), array> 280 template <
int N, const TagVocabulary (&array)[N]>
288 os <<
"(" << value <<
")";
294 #define EXV_PRINT_VOCABULARY(array) printTagVocabulary<EXV_COUNTOF(array), array> 312 const GroupInfo* groupList();
346 std::ostream&
printValue(std::ostream& os,
const Value& value,
const ExifData*);
349 std::ostream&
printLong(std::ostream& os,
const Value& value,
const ExifData*);
351 std::ostream&
printFloat(std::ostream& os,
const Value& value,
const ExifData*);
353 std::ostream&
printDegrees(std::ostream& os,
const Value& value,
const ExifData*);
355 std::ostream&
printUcs2(std::ostream& os,
const Value& value,
const ExifData*);
357 std::ostream&
printExifUnit(std::ostream& os,
const Value& value,
const ExifData*);
359 std::ostream&
print0x0000(std::ostream& os,
const Value& value,
const ExifData*);
361 std::ostream&
print0x0005(std::ostream& os,
const Value& value,
const ExifData*);
363 std::ostream&
print0x0006(std::ostream& os,
const Value& value,
const ExifData*);
365 std::ostream&
print0x0007(std::ostream& os,
const Value& value,
const ExifData*);
367 std::ostream&
print0x0009(std::ostream& os,
const Value& value,
const ExifData*);
369 std::ostream&
print0x000a(std::ostream& os,
const Value& value,
const ExifData*);
371 std::ostream&
print0x000c(std::ostream& os,
const Value& value,
const ExifData*);
373 std::ostream&
print0x0019(std::ostream& os,
const Value& value,
const ExifData*);
375 std::ostream&
print0x001e(std::ostream& os,
const Value& value,
const ExifData*);
377 std::ostream&
print0x0112(std::ostream& os,
const Value& value,
const ExifData*);
379 std::ostream&
print0x0213(std::ostream& os,
const Value& value,
const ExifData*);
381 std::ostream&
print0x8298(std::ostream& os,
const Value& value,
const ExifData*);
383 std::ostream&
print0x829a(std::ostream& os,
const Value& value,
const ExifData*);
385 std::ostream&
print0x829d(std::ostream& os,
const Value& value,
const ExifData*);
387 std::ostream&
print0x8822(std::ostream& os,
const Value& value,
const ExifData*);
389 std::ostream&
print0x8827(std::ostream& os,
const Value& value,
const ExifData*);
391 std::ostream&
print0x9101(std::ostream& os,
const Value& value,
const ExifData*);
393 std::ostream&
print0x9201(std::ostream& os,
const Value& value,
const ExifData*);
395 std::ostream&
print0x9202(std::ostream& os,
const Value& value,
const ExifData*);
397 std::ostream&
print0x9204(std::ostream& os,
const Value& value,
const ExifData*);
399 std::ostream&
print0x9206(std::ostream& os,
const Value& value,
const ExifData*);
401 std::ostream&
print0x9207(std::ostream& os,
const Value& value,
const ExifData*);
403 std::ostream&
print0x9208(std::ostream& os,
const Value& value,
const ExifData*);
405 std::ostream&
print0x920a(std::ostream& os,
const Value& value,
const ExifData*);
407 std::ostream&
print0x9286(std::ostream& os,
const Value& value,
const ExifData*);
409 std::ostream&
print0xa001(std::ostream& os,
const Value& value,
const ExifData*);
411 std::ostream&
print0xa217(std::ostream& os,
const Value& value,
const ExifData*);
413 std::ostream&
print0xa300(std::ostream& os,
const Value& value,
const ExifData*);
415 std::ostream&
print0xa301(std::ostream& os,
const Value& value,
const ExifData*);
417 std::ostream&
print0xa401(std::ostream& os,
const Value& value,
const ExifData*);
419 std::ostream&
print0xa402(std::ostream& os,
const Value& value,
const ExifData*);
421 std::ostream&
print0xa403(std::ostream& os,
const Value& value,
const ExifData*);
423 std::ostream&
print0xa404(std::ostream& os,
const Value& value,
const ExifData*);
425 std::ostream&
print0xa405(std::ostream& os,
const Value& value,
const ExifData*);
427 std::ostream&
print0xa406(std::ostream& os,
const Value& value,
const ExifData*);
429 std::ostream&
print0xa407(std::ostream& os,
const Value& value,
const ExifData*);
431 std::ostream&
print0xa409(std::ostream& os,
const Value& value,
const ExifData*);
433 std::ostream&
print0xa40c(std::ostream& os,
const Value& value,
const ExifData*);
435 std::ostream&
printGPSDirRef(std::ostream& os,
const Value& value,
const ExifData*);
439 std::ostream&
printExifVersion(std::ostream& os,
const Value& value,
const ExifData*);
441 std::ostream&
printXmpVersion(std::ostream& os,
const Value& value,
const ExifData*);
443 std::ostream&
printXmpDate(std::ostream& os,
const Value& value,
const ExifData*);
447 float fnumber(
float apertureValue);
454 #endif // #ifndef TAGS_INT_HPP_ const char * desc_
Section description.
Definition: tags_int.hpp:181
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2148
std::ostream & print0x0009(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS status.
Definition: tags_int.cpp:2348
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:2185
Helper structure for lookup tables for translations of numeric tag values to human readable labels...
Definition: tags_int.hpp:188
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434
const TagInfo * iopTagList()
Return read-only list of built-in IOP tags.
Definition: tags_int.cpp:2034
std::ostream & print0xa300(std::ostream &os, const Value &value, const ExifData *metadata)
Print file source.
Definition: tags_int.cpp:2678
uint32_t mask_
Bitmask value.
Definition: tags_int.hpp:201
const char * label_
Description of the tag value.
Definition: tags_int.hpp:202
std::ostream & printValue(std::ostream &os, const Value &value, const ExifData *)
Default print function, using the Value output operator.
Definition: tags_int.cpp:2162
std::ostream & printTagVocabulary(std::ostream &os, const Value &value, const ExifData *)
Generic pretty-print function to translate a controlled vocabulary value (string) to a description by...
Definition: tags_int.hpp:281
int64_t val_
Tag value.
Definition: tags_int.hpp:189
std::ostream & print0xa403(std::ostream &os, const Value &value, const ExifData *metadata)
Print white balance.
Definition: tags_int.cpp:2722
std::ostream & print0xa404(std::ostream &os, const Value &value, const ExifData *)
Print digital zoom ratio.
Definition: tags_int.cpp:2727
IfdId groupId(const std::string &groupName)
Return the group id for a group name.
Definition: tags_int.cpp:2140
std::ostream & print0xa406(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene capture type.
Definition: tags_int.cpp:2766
std::ostream & print0x0007(std::ostream &os, const Value &value, const ExifData *)
Print GPS timestamp.
Definition: tags_int.cpp:2312
const char * label_
Translation of the tag value.
Definition: tags_int.hpp:190
std::ostream & print0x9101(std::ostream &os, const Value &value, const ExifData *)
Print components configuration specific to compressed data.
Definition: tags_int.cpp:2472
const TagInfo * tagInfo(uint16_t tag, IfdId ifdId)
Return the tag info for tag and ifdId.
Definition: tags_int.cpp:2115
const TagInfo * tagList(IfdId ifdId)
Return the tag list for ifdId.
Definition: tags_int.cpp:2108
std::ostream & print0x8827(std::ostream &os, const Value &value, const ExifData *)
Print ISO speed ratings.
Definition: tags_int.cpp:2467
std::ostream & print0xa402(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure mode.
Definition: tags_int.cpp:2711
std::ostream & printFloat(std::ostream &os, const Value &value, const ExifData *)
Print a Rational or URational value in floating point format.
Definition: tags_int.cpp:2203
The details of a section.
Definition: tags_int.hpp:178
std::ostream & printDegrees(std::ostream &os, const Value &value, const ExifData *)
Print a longitude or latitude value.
Definition: tags_int.cpp:2210
std::ostream & print0x0000(std::ostream &os, const Value &value, const ExifData *)
Print GPS version.
Definition: tags_int.cpp:2277
std::ostream & print0x9286(std::ostream &os, const Value &value, const ExifData *)
Print the user comment.
Definition: tags_int.cpp:2631
const char * name_
Section name (one word)
Definition: tags_int.hpp:180
Type definitions for Exiv2 and related functionality.
std::ostream & print0x9208(std::ostream &os, const Value &value, const ExifData *metadata)
Print light source.
Definition: tags_int.cpp:2607
std::ostream & print0x9206(std::ostream &os, const Value &value, const ExifData *)
Print the subject distance.
Definition: tags_int.cpp:2539
std::ostream & print0x8298(std::ostream &os, const Value &value, const ExifData *)
Print the copyright.
Definition: tags_int.cpp:2388
std::ostream & print0xa401(std::ostream &os, const Value &value, const ExifData *metadata)
Print custom rendered.
Definition: tags_int.cpp:2699
std::ostream & printTag(std::ostream &os, const Value &value, const ExifData *)
Generic pretty-print function to translate a long value to a description by looking up a reference ta...
Definition: tags_int.hpp:228
URational exposureTime(float shutterSpeedValue)
Calculate the exposure time from an APEX shutter speed value.
Definition: tags_int.cpp:2172
const T * find(T(&src)[N], const K &key)
Find an element that matches key in the array src.
Definition: types.hpp:508
std::ostream & print0xa301(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene type.
Definition: tags_int.cpp:2688
bool operator==(const std::string &key) const
Comparison operator for use with the find template.
Definition: tags.cpp:98
std::ostream & print0x001e(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS differential correction.
Definition: tags_int.cpp:2368
std::ostream & print0x9207(std::ostream &os, const Value &value, const ExifData *metadata)
Print metering mode.
Definition: tags_int.cpp:2577
std::ostream & print0xa217(std::ostream &os, const Value &value, const ExifData *metadata)
Print sensing method.
Definition: tags_int.cpp:2666
std::ostream & printTagBitmask(std::ostream &os, const Value &value, const ExifData *)
Generic print function to translate a long value to a description by looking up bitmasks in a referen...
Definition: tags_int.hpp:248
EXIV2API const char * exvGettext(const char *str)
Translate a string using the gettext framework. This wrapper hides all the implementation details fro...
Definition: types.cpp:576
Helper structure for lookup tables for translations of bitmask values to human readable labels...
Definition: tags_int.hpp:200
std::ostream & printUcs2(std::ostream &os, const Value &value, const ExifData *)
Print function converting from UCS-2LE to UTF-8.
Definition: tags_int.cpp:2246
std::ostream & print0x0005(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS altitude ref.
Definition: tags_int.cpp:2292
const TagInfo * mnTagList()
Return read-only list of built-in Exiv2 Makernote info tags.
Definition: tags_int.cpp:2053
bool operator==(long key) const
Comparison operator for use with the find template.
Definition: tags_int.hpp:193
std::ostream & print0x9202(std::ostream &os, const Value &value, const ExifData *)
Print f-number converted from APEX aperture value.
Definition: tags_int.cpp:2503
std::ostream & print0x0112(std::ostream &os, const Value &value, const ExifData *metadata)
Print orientation.
Definition: tags_int.cpp:2373
std::ostream & printExifUnit(std::ostream &os, const Value &value, const ExifData *metadata)
Print function for Exif units.
Definition: tags_int.cpp:2272
std::ostream & print0xa409(std::ostream &os, const Value &value, const ExifData *metadata)
Print saturation.
Definition: tags_int.cpp:2792
std::ostream & print0x0019(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS destination distance ref.
Definition: tags_int.cpp:2363
const TagInfo * ifdTagList()
Return read-only list of built-in IFD0/1 tags.
Definition: tags_int.cpp:1428
std::ostream & print0x0213(std::ostream &os, const Value &value, const ExifData *metadata)
Print YCbCrPositioning.
Definition: tags_int.cpp:2383
std::ostream & print0x829d(std::ostream &os, const Value &value, const ExifData *)
Print the f-number.
Definition: tags_int.cpp:2431
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition: types.hpp:108
const char * voc_
Vocabulary string.
Definition: tags_int.hpp:210
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2155
std::ostream & print0x829a(std::ostream &os, const Value &value, const ExifData *)
Print the exposure time.
Definition: tags_int.cpp:2408
SectionId
Section identifiers to logically group tags. A section consists of nothing more than a name...
Definition: tags_int.hpp:170
const TagInfo * mpfTagList()
Return read-only list of built-in mfp Tags http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/MPF...
Definition: tags_int.cpp:2001
std::ostream & printLong(std::ostream &os, const Value &value, const ExifData *)
Print the value converted to a long.
Definition: tags_int.cpp:2196
IPTC string type.
Definition: types.hpp:147
std::ostream & print0x0006(std::ostream &os, const Value &value, const ExifData *)
Print GPS altitude.
Definition: tags_int.cpp:2297
Common interface for all types of values used with metadata.
Definition: value.hpp:60
std::ostream & printGPSDirRef(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS direction ref.
Definition: tags_int.cpp:2817
std::ostream & print0xa407(std::ostream &os, const Value &value, const ExifData *metadata)
Print gain control.
Definition: tags_int.cpp:2780
Helper structure for lookup tables for translations of controlled vocabulary strings to their descrip...
Definition: tags_int.hpp:209
std::ostream & print0xa001(std::ostream &os, const Value &value, const ExifData *metadata)
Print color space.
Definition: tags_int.cpp:2650
const TagInfo * exifTagList()
Return read-only list of built-in Exif IFD tags.
Definition: tags_int.cpp:1757
std::ostream & print0x8822(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure program.
Definition: tags_int.cpp:2462
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
float fnumber(float apertureValue)
Calculate F number from an APEX aperture value.
Definition: tags_int.cpp:2167
std::ostream & print0x000c(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS speed ref.
Definition: tags_int.cpp:2358
std::ostream & print0x000a(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS measurement mode.
Definition: tags_int.cpp:2353
std::ostream & print0x9204(std::ostream &os, const Value &value, const ExifData *)
Print the exposure bias value.
Definition: tags_int.cpp:2518
bool isMakerIfd(IfdId ifdId)
Return true if ifdId is a makernote IFD id. (Note: returns false for makerIfd)
Definition: tags_int.cpp:2060
std::ostream & printXmpVersion(std::ostream &os, const Value &value, const ExifData *)
Print any version encoded in the ASCII string majormajorminorminor.
Definition: tags_int.cpp:2849
SectionId sectionId_
Section id.
Definition: tags_int.hpp:179
void taglist(std::ostream &os, IfdId ifdId)
Print the list of tags for ifdId to the output stream os.
Definition: tags_int.cpp:2098
std::ostream & printNormalSoftHard(std::ostream &os, const Value &value, const ExifData *metadata)
Print contrast, sharpness (normal, soft, hard)
Definition: tags_int.cpp:2829
std::string toString() const
Return the value as a string. Implemented in terms of write(std::ostream& os) const of the concrete c...
Definition: value.cpp:175
const char * label_
Description of the vocabulary string.
Definition: tags_int.hpp:211
virtual long toLong(long n=0) const =0
Convert the n-th component of the value to a long. The behaviour of this method may be undefined if t...
std::ostream & printExifVersion(std::ostream &os, const Value &value, const ExifData *)
Print any version packed in 4 Bytes format : major major minor minor.
Definition: tags_int.cpp:2834
std::ostream & print0x920a(std::ostream &os, const Value &value, const ExifData *)
Print the actual focal length of the lens.
Definition: tags_int.cpp:2612
const TagInfo * gpsTagList()
Return read-only list of built-in GPS tags.
Definition: tags_int.cpp:1931
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:54
std::ostream & printXmpDate(std::ostream &os, const Value &value, const ExifData *)
Print a date following the format YYYY-MM-DDTHH:MM:SSZ.
Definition: tags_int.cpp:2858
std::ostream & print0xa40c(std::ostream &os, const Value &value, const ExifData *metadata)
Print subject distance range.
Definition: tags_int.cpp:2806
bool isExifIfd(IfdId ifdId)
Return true if ifdId is an Exif IFD id.
Definition: tags_int.cpp:2070
std::ostream & print0x9201(std::ostream &os, const Value &value, const ExifData *)
Print exposure time converted from APEX shutter speed value.
Definition: tags_int.cpp:2490
Value interface and concrete subclasses.
std::ostream & print0xa405(std::ostream &os, const Value &value, const ExifData *)
Print 35mm equivalent focal length.
Definition: tags_int.cpp:2745