Exiv2
Loading...
Searching...
No Matches
tags_int.hpp
1// ***************************************************************** -*- C++ -*-
2/*
3 * Copyright (C) 2004-2021 Exiv2 authors
4 * This program is part of the Exiv2 distribution.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
19 */
20#ifndef TAGS_INT_HPP_
21#define TAGS_INT_HPP_
22
23// *****************************************************************************
24// included header files
25#include "types.hpp"
26#include "tags.hpp"
27#include "value.hpp"
28
29// + standard includes
30#include <string>
31#include <iostream>
32#include <memory>
33
34// *****************************************************************************
35// namespace extensions
36
37namespace Exiv2 {
38 class ExifData;
39
40 namespace Internal {
41
42// *****************************************************************************
43// class definitions
44
46 enum IfdId {
47 ifdIdNotSet,
48 ifd0Id,
49 ifd1Id,
50 ifd2Id,
51 ifd3Id,
52 exifId,
53 gpsId,
54 iopId,
55 mpfId,
56 subImage1Id,
57 subImage2Id,
58 subImage3Id,
59 subImage4Id,
60 subImage5Id,
61 subImage6Id,
62 subImage7Id,
63 subImage8Id,
64 subImage9Id,
65 subThumb1Id,
66 panaRawId,
67 mnId,
68 canonId,
69 canonAf2Id,
70 canonAf3Id,
71 canonAfCId,
72 canonAfMiAdjId,
73 canonAmId,
74 canonAsId,
75 canonCbId,
76 canonCiId,
77 canonCsId,
78 canonFilId,
79 canonFlId,
80 canonHdrId,
81 canonLeId,
82 canonMeId,
83 canonMoID,
84 canonMvId,
85 canonRawBId,
86 canonSiId,
87 canonCfId,
88 canonContrastId,
89 canonFcd1Id,
90 canonFcd2Id,
91 canonFcd3Id,
92 canonLiOpId,
93 canonMyColorID,
94 canonPiId,
95 canonPaId,
96 canonTiId,
97 canonFiId,
98 canonPrId,
99 canonPreID,
100 canonVigCorId,
101 canonVigCor2Id,
102 canonWbId,
103 casioId,
104 casio2Id,
105 fujiId,
106 minoltaId,
107 minoltaCs5DId,
108 minoltaCs7DId,
109 minoltaCsOldId,
110 minoltaCsNewId,
111 nikon1Id,
112 nikon2Id,
113 nikon3Id,
114 nikonPvId,
115 nikonVrId,
116 nikonPcId,
117 nikonWtId,
118 nikonIiId,
119 nikonAfId,
120 nikonAf21Id,
121 nikonAf22Id,
122 nikonAFTId,
123 nikonFiId,
124 nikonMeId,
125 nikonFl1Id,
126 nikonFl2Id,
127 nikonFl3Id,
128 nikonSi1Id,
129 nikonSi2Id,
130 nikonSi3Id,
131 nikonSi4Id,
132 nikonSi5Id,
133 nikonSi6Id,
134 nikonLd1Id,
135 nikonLd2Id,
136 nikonLd3Id,
137 nikonLd4Id,
138 nikonCb1Id,
139 nikonCb2Id,
140 nikonCb2aId,
141 nikonCb2bId,
142 nikonCb3Id,
143 nikonCb4Id,
144 olympusId,
145 olympus2Id,
146 olympusCsId,
147 olympusEqId,
148 olympusRdId,
149 olympusRd2Id,
150 olympusIpId,
151 olympusFiId,
152 olympusFe1Id,
153 olympusFe2Id,
154 olympusFe3Id,
155 olympusFe4Id,
156 olympusFe5Id,
157 olympusFe6Id,
158 olympusFe7Id,
159 olympusFe8Id,
160 olympusFe9Id,
161 olympusRiId,
162 panasonicId,
163 pentaxId,
164 pentaxDngId,
165 samsung2Id,
166 samsungPvId,
167 samsungPwId,
168 sigmaId,
169 sony1Id,
170 sony2Id,
171 sonyMltId,
172 sony1CsId,
173 sony1Cs2Id,
174 sony2CsId,
175 sony2Cs2Id,
176 sony2FpId,
177 sony2010eId,
178 sony1MltCs7DId,
179 sony1MltCsOldId,
180 sony1MltCsNewId,
181 sony1MltCsA100Id,
182 tagInfoMvId,
183 lastId,
184 ignoreId = lastId
185 };
186
191 enum SectionId { sectionIdNotSet,
192 imgStruct, // 4.6.4 A
193 recOffset, // 4.6.4 B
194 imgCharacter, // 4.6.4 C
195 otherTags, // 4.6.4 D
196 exifFormat, // 4.6.3
197 exifVersion, // 4.6.5 A
198 imgConfig, // 4.6.5 C
199 userInfo, // 4.6.5 D
200 relatedFile, // 4.6.5 E
201 dateTime, // 4.6.5 F
202 captureCond, // 4.6.5 G
203 gpsTags, // 4.6.6
204 iopTags, // 4.6.7
205 mpfTags,
206 makerTags, // MakerNote
207 dngTags, // DNG Spec
208 panaRaw,
209 tiffEp, // TIFF-EP Spec
210 tiffPm6,
211 adobeOpi,
212 lastSectionId };
213
215 struct SectionInfo {
217 const char* name_;
218 const char* desc_;
219 };
220
225 struct TagDetails {
226 int64_t val_;
227 const char* label_;
228
230 bool operator==(long key) const { return val_ == key; }
231 }; // struct TagDetails
232
238 uint32_t mask_;
239 const char* label_;
240 }; // struct TagDetailsBitmask
241
247 const char* voc_;
248 const char* label_;
249
257 bool operator==(const std::string& key) const;
258 }; // struct TagDetails
259
264 template <int N, const TagDetails (&array)[N]>
265 std::ostream& printTag(std::ostream& os, const Value& value, const ExifData*)
266 {
267 const TagDetails* td = find(array, value.toLong());
268 if (td) {
269 os << exvGettext(td->label_);
270 }
271 else {
272 os << "(" << value << ")";
273 }
274 return os;
275 }
276
278#define EXV_PRINT_TAG(array) printTag<EXV_COUNTOF(array), array>
279
284 template <int N, const TagDetailsBitmask (&array)[N]>
285 std::ostream& printTagBitmask(std::ostream& os, const Value& value, const ExifData*)
286 {
287 const uint32_t val = static_cast<uint32_t>(value.toLong());
288 if (val == 0 && N > 0) {
289 const TagDetailsBitmask* td = *(&array);
290 if (td->mask_ == 0) return os << exvGettext(td->label_);
291 }
292 bool sep = false;
293 for (int i = 0; i < N; ++i) {
294 // *& acrobatics is a workaround for a MSVC 7.1 bug
295 const TagDetailsBitmask* td = *(&array) + i;
296
297 if (val & td->mask_) {
298 if (sep) {
299 os << ", " << exvGettext(td->label_);
300 }
301 else {
302 os << exvGettext(td->label_);
303 sep = true;
304 }
305 }
306 }
307 return os;
308 }
309
311#define EXV_PRINT_TAG_BITMASK(array) printTagBitmask<EXV_COUNTOF(array), array>
312
317 template <int N, const TagVocabulary (&array)[N]>
318 std::ostream& printTagVocabulary(std::ostream& os, const Value& value, const ExifData*)
319 {
320 const TagVocabulary* td = find(array, value.toString());
321 if (td) {
322 os << exvGettext(td->label_);
323 }
324 else {
325 os << "(" << value << ")";
326 }
327 return os;
328 }
329
331#define EXV_PRINT_VOCABULARY(array) printTagVocabulary<EXV_COUNTOF(array), array>
332
333// *****************************************************************************
334// free functions
335
337 const TagInfo* ifdTagList();
339 const TagInfo* exifTagList();
341 const TagInfo* iopTagList();
343 const TagInfo* gpsTagList();
345 const TagInfo* mnTagList();
347 const TagInfo* mpfTagList();
348
349 const GroupInfo* groupList();
350 const TagInfo* tagList(const std::string& groupName);
351
353 IfdId groupId(const std::string& groupName);
355 const char* ifdName(IfdId ifdId);
357 const char* groupName(IfdId ifdId);
358
360 bool isMakerIfd(IfdId ifdId);
362 bool isExifIfd(IfdId ifdId);
363
365 void taglist(std::ostream& os, IfdId ifdId);
367 const TagInfo* tagList(IfdId ifdId);
369 const TagInfo* tagInfo(uint16_t tag, IfdId ifdId);
371 const TagInfo* tagInfo(const std::string& tagName, IfdId ifdId);
379 uint16_t tagNumber(const std::string& tagName, IfdId ifdId);
380
382
383
384 std::ostream& printValue(std::ostream& os, const Value& value, const ExifData*);
386 std::ostream& printLong(std::ostream& os, const Value& value, const ExifData*);
388 std::ostream& printFloat(std::ostream& os, const Value& value, const ExifData*);
390 std::ostream& printDegrees(std::ostream& os, const Value& value, const ExifData*);
392 std::ostream& printUcs2(std::ostream& os, const Value& value, const ExifData*);
394 std::ostream& printExifUnit(std::ostream& os, const Value& value, const ExifData*);
396 std::ostream& print0x0000(std::ostream& os, const Value& value, const ExifData*);
398 std::ostream& print0x0005(std::ostream& os, const Value& value, const ExifData*);
400 std::ostream& print0x0006(std::ostream& os, const Value& value, const ExifData*);
402 std::ostream& print0x0007(std::ostream& os, const Value& value, const ExifData*);
404 std::ostream& print0x0009(std::ostream& os, const Value& value, const ExifData*);
406 std::ostream& print0x000a(std::ostream& os, const Value& value, const ExifData*);
408 std::ostream& print0x000c(std::ostream& os, const Value& value, const ExifData*);
410 std::ostream& print0x0019(std::ostream& os, const Value& value, const ExifData*);
412 std::ostream& print0x001e(std::ostream& os, const Value& value, const ExifData*);
414 std::ostream& print0x0112(std::ostream& os, const Value& value, const ExifData*);
416 std::ostream& print0x0213(std::ostream& os, const Value& value, const ExifData*);
418 std::ostream& print0x8298(std::ostream& os, const Value& value, const ExifData*);
420 std::ostream& print0x829a(std::ostream& os, const Value& value, const ExifData*);
422 std::ostream& print0x829d(std::ostream& os, const Value& value, const ExifData*);
424 std::ostream& print0x8822(std::ostream& os, const Value& value, const ExifData*);
426 std::ostream& print0x8827(std::ostream& os, const Value& value, const ExifData*);
428 std::ostream& print0x9101(std::ostream& os, const Value& value, const ExifData*);
430 std::ostream& print0x9201(std::ostream& os, const Value& value, const ExifData*);
432 std::ostream& print0x9202(std::ostream& os, const Value& value, const ExifData*);
434 std::ostream& print0x9204(std::ostream& os, const Value& value, const ExifData*);
436 std::ostream& print0x9206(std::ostream& os, const Value& value, const ExifData*);
438 std::ostream& print0x9207(std::ostream& os, const Value& value, const ExifData*);
440 std::ostream& print0x9208(std::ostream& os, const Value& value, const ExifData*);
442 std::ostream& print0x920a(std::ostream& os, const Value& value, const ExifData*);
444 std::ostream& print0xa001(std::ostream& os, const Value& value, const ExifData*);
446 std::ostream& print0xa217(std::ostream& os, const Value& value, const ExifData*);
448 std::ostream& print0xa300(std::ostream& os, const Value& value, const ExifData*);
450 std::ostream& print0xa301(std::ostream& os, const Value& value, const ExifData*);
452 std::ostream& print0xa401(std::ostream& os, const Value& value, const ExifData*);
454 std::ostream& print0xa402(std::ostream& os, const Value& value, const ExifData*);
456 std::ostream& print0xa403(std::ostream& os, const Value& value, const ExifData*);
458 std::ostream& print0xa404(std::ostream& os, const Value& value, const ExifData*);
460 std::ostream& print0xa405(std::ostream& os, const Value& value, const ExifData*);
462 std::ostream& print0xa406(std::ostream& os, const Value& value, const ExifData*);
464 std::ostream& print0xa407(std::ostream& os, const Value& value, const ExifData*);
466 std::ostream& print0xa409(std::ostream& os, const Value& value, const ExifData*);
468 std::ostream& print0xa40c(std::ostream& os, const Value& value, const ExifData*);
470 std::ostream& printGPSDirRef(std::ostream& os, const Value& value, const ExifData*);
472 std::ostream& printNormalSoftHard(std::ostream& os, const Value& value, const ExifData*);
474 std::ostream& printExifVersion(std::ostream& os, const Value& value, const ExifData*);
476 std::ostream& printXmpVersion(std::ostream& os, const Value& value, const ExifData*);
478 std::ostream& printXmpDate(std::ostream& os, const Value& value, const ExifData*);
480 std::ostream& printBitmask(std::ostream& os, const Value& value, const ExifData*);
482
484 float fnumber(float apertureValue);
485
488
489}} // namespace Internal, Exiv2
490
491#endif // #ifndef TAGS_INT_HPP_
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434
Common interface for all types of values used with metadata.
Definition: value.hpp:51
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::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:168
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2540
std::ostream & print0xa405(std::ostream &os, const Value &value, const ExifData *)
Print 35mm equivalent focal length.
Definition: tags_int.cpp:3116
std::ostream & print0xa407(std::ostream &os, const Value &value, const ExifData *metadata)
Print gain control.
Definition: tags_int.cpp:3151
std::ostream & print0x9206(std::ostream &os, const Value &value, const ExifData *)
Print the subject distance.
Definition: tags_int.cpp:2947
bool isMakerIfd(IfdId ifdId)
Return true if ifdId is a makernote IFD id. (Note: returns false for makerIfd)
Definition: tags_int.cpp:2445
std::ostream & printUcs2(std::ostream &os, const Value &value, const ExifData *)
Print function converting from UCS-2LE to UTF-8.
Definition: tags_int.cpp:2654
std::ostream & print0xa001(std::ostream &os, const Value &value, const ExifData *metadata)
Print color space.
Definition: tags_int.cpp:3021
std::ostream & print0xa300(std::ostream &os, const Value &value, const ExifData *metadata)
Print file source.
Definition: tags_int.cpp:3049
std::ostream & print0x9202(std::ostream &os, const Value &value, const ExifData *)
Print f-number converted from APEX aperture value.
Definition: tags_int.cpp:2911
std::ostream & printDegrees(std::ostream &os, const Value &value, const ExifData *)
Print a longitude or latitude value.
Definition: tags_int.cpp:2637
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:265
std::ostream & print0x8827(std::ostream &os, const Value &value, const ExifData *)
Print ISO speed ratings.
Definition: tags_int.cpp:2875
URational exposureTime(float shutterSpeedValue)
Calculate the exposure time from an APEX shutter speed value.
Definition: tags_int.cpp:2585
std::ostream & print0xa409(std::ostream &os, const Value &value, const ExifData *metadata)
Print saturation.
Definition: tags_int.cpp:3163
std::ostream & print0x0009(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS status.
Definition: tags_int.cpp:2756
std::ostream & print0xa217(std::ostream &os, const Value &value, const ExifData *metadata)
Print sensing method.
Definition: tags_int.cpp:3037
std::ostream & print0x000c(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS speed ref.
Definition: tags_int.cpp:2766
std::ostream & print0xa40c(std::ostream &os, const Value &value, const ExifData *metadata)
Print subject distance range.
Definition: tags_int.cpp:3177
std::ostream & print0x829a(std::ostream &os, const Value &value, const ExifData *)
Print the exposure time.
Definition: tags_int.cpp:2816
std::ostream & print0x829d(std::ostream &os, const Value &value, const ExifData *)
Print the f-number.
Definition: tags_int.cpp:2839
SectionId
Section identifiers to logically group tags. A section consists of nothing more than a name,...
Definition: tags_int.hpp:191
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:2386
std::ostream & print0x0019(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS destination distance ref.
Definition: tags_int.cpp:2771
std::ostream & printExifUnit(std::ostream &os, const Value &value, const ExifData *metadata)
Print function for Exif units.
Definition: tags_int.cpp:2680
void taglist(std::ostream &os, IfdId ifdId)
Print the list of tags for ifdId to the output stream os.
Definition: tags_int.cpp:2483
std::ostream & print0xa403(std::ostream &os, const Value &value, const ExifData *metadata)
Print white balance.
Definition: tags_int.cpp:3093
std::ostream & print0x0005(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS altitude ref.
Definition: tags_int.cpp:2700
const TagInfo * tagList(IfdId ifdId)
Return the tag list for ifdId.
Definition: tags_int.cpp:2493
std::ostream & print0x9201(std::ostream &os, const Value &value, const ExifData *)
Print exposure time converted from APEX shutter speed value.
Definition: tags_int.cpp:2898
std::ostream & print0x000a(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS measurement mode.
Definition: tags_int.cpp:2761
const TagInfo * iopTagList()
Return read-only list of built-in IOP tags.
Definition: tags_int.cpp:2419
std::ostream & print0x0112(std::ostream &os, const Value &value, const ExifData *metadata)
Print orientation.
Definition: tags_int.cpp:2781
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:3199
std::ostream & printBitmask(std::ostream &os, const Value &value, const ExifData *metadata)
Print a bitmask as (none) | n | n,m... where: (none) = no bits set | n = bit n from left (0=left-most...
Definition: tags_int.cpp:2552
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2533
std::ostream & printNormalSoftHard(std::ostream &os, const Value &value, const ExifData *metadata)
Print contrast, sharpness (normal, soft, hard)
Definition: tags_int.cpp:3194
std::ostream & print0x0213(std::ostream &os, const Value &value, const ExifData *metadata)
Print YCbCrPositioning.
Definition: tags_int.cpp:2791
std::ostream & print0x920a(std::ostream &os, const Value &value, const ExifData *)
Print the actual focal length of the lens.
Definition: tags_int.cpp:2995
const TagInfo * tagInfo(uint16_t tag, IfdId ifdId)
Return the tag info for tag and ifdId.
Definition: tags_int.cpp:2500
std::ostream & print0xa401(std::ostream &os, const Value &value, const ExifData *metadata)
Print custom rendered.
Definition: tags_int.cpp:3070
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
float fnumber(float apertureValue)
Calculate F number from an APEX aperture value.
Definition: tags_int.cpp:2580
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:285
std::ostream & printGPSDirRef(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS direction ref.
Definition: tags_int.cpp:3182
std::ostream & printXmpVersion(std::ostream &os, const Value &value, const ExifData *)
Print any version encoded in the ASCII string majormajorminorminor.
Definition: tags_int.cpp:3214
const TagInfo * gpsTagList()
Return read-only list of built-in GPS tags.
Definition: tags_int.cpp:2316
std::ostream & print0x9101(std::ostream &os, const Value &value, const ExifData *)
Print components configuration specific to compressed data.
Definition: tags_int.cpp:2880
std::ostream & print0x0000(std::ostream &os, const Value &value, const ExifData *)
Print GPS version.
Definition: tags_int.cpp:2685
std::ostream & print0xa402(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure mode.
Definition: tags_int.cpp:3082
std::ostream & print0xa404(std::ostream &os, const Value &value, const ExifData *)
Print digital zoom ratio.
Definition: tags_int.cpp:3098
IfdId groupId(const std::string &groupName)
Return the group id for a group name.
Definition: tags_int.cpp:2525
std::ostream & print0x8298(std::ostream &os, const Value &value, const ExifData *)
Print the copyright.
Definition: tags_int.cpp:2796
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:318
std::ostream & print0x0006(std::ostream &os, const Value &value, const ExifData *)
Print GPS altitude.
Definition: tags_int.cpp:2705
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:2626
const TagInfo * exifTagList()
Return read-only list of built-in Exif IFD tags.
Definition: tags_int.cpp:2096
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:46
const TagInfo * ifdTagList()
Return read-only list of built-in IFD0/1 tags.
Definition: tags_int.cpp:1709
std::ostream & print0x9204(std::ostream &os, const Value &value, const ExifData *)
Print the exposure bias value.
Definition: tags_int.cpp:2926
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:3223
std::ostream & print0xa406(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene capture type.
Definition: tags_int.cpp:3137
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 isExifIfd(IfdId ifdId)
Return true if ifdId is an Exif IFD id.
Definition: tags_int.cpp:2455
const TagInfo * mnTagList()
Return read-only list of built-in Exiv2 Makernote info tags.
Definition: tags_int.cpp:2438
std::ostream & print0x9208(std::ostream &os, const Value &value, const ExifData *metadata)
Print light source.
Definition: tags_int.cpp:2990
std::ostream & print0x8822(std::ostream &os, const Value &value, const ExifData *metadata)
Print exposure program.
Definition: tags_int.cpp:2870
std::ostream & print0x001e(std::ostream &os, const Value &value, const ExifData *metadata)
Print GPS differential correction.
Definition: tags_int.cpp:2776
std::ostream & printLong(std::ostream &os, const Value &value, const ExifData *)
Print the value converted to a long.
Definition: tags_int.cpp:2619
std::ostream & print0x9207(std::ostream &os, const Value &value, const ExifData *metadata)
Print metering mode.
Definition: tags_int.cpp:2985
std::ostream & print0xa301(std::ostream &os, const Value &value, const ExifData *metadata)
Print scene type.
Definition: tags_int.cpp:3059
std::ostream & print0x0007(std::ostream &os, const Value &value, const ExifData *)
Print GPS timestamp.
Definition: tags_int.cpp:2720
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
const T * find(T(&src)[N], const K &key)
Find an element that matches key in the array src.
Definition: types.hpp:497
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:571
EXIV2API ExifData::const_iterator apertureValue(const ExifData &ed)
Return the aperture value.
Definition: easyaccess.cpp:482
EXIV2API ExifData::const_iterator shutterSpeedValue(const ExifData &ed)
Return the shutter speed value.
Definition: easyaccess.cpp:473
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition: types.hpp:97
The details of an Exif group. Groups include IFDs and binary arrays.
Definition: tags.hpp:57
The details of a section.
Definition: tags_int.hpp:215
const char * name_
Section name (one word)
Definition: tags_int.hpp:217
SectionId sectionId_
Section id.
Definition: tags_int.hpp:216
const char * desc_
Section description.
Definition: tags_int.hpp:218
Helper structure for lookup tables for translations of bitmask values to human readable labels.
Definition: tags_int.hpp:237
uint32_t mask_
Bitmask value.
Definition: tags_int.hpp:238
const char * label_
Description of the tag value.
Definition: tags_int.hpp:239
Helper structure for lookup tables for translations of numeric tag values to human readable labels.
Definition: tags_int.hpp:225
const char * label_
Translation of the tag value.
Definition: tags_int.hpp:227
int64_t val_
Tag value.
Definition: tags_int.hpp:226
bool operator==(long key) const
Comparison operator for use with the find template.
Definition: tags_int.hpp:230
Helper structure for lookup tables for translations of controlled vocabulary strings to their descrip...
Definition: tags_int.hpp:246
const char * voc_
Vocabulary string.
Definition: tags_int.hpp:247
const char * label_
Description of the vocabulary string.
Definition: tags_int.hpp:248
bool operator==(const std::string &key) const
Comparison operator for use with the find template.
Definition: tags.cpp:90
Tag information.
Definition: tags.hpp:74