- Main Page
- Namespaces
- Classes
- Files
- Examples

- Namespace List
- Namespace Members

# Exiv2 Namespace Reference

Provides classes and functions to encode and decode Exif and Iptc data. This namespace corresponds to the libexiv2 library. More...

## Classes
class | BasicIo
| An interface for simple binary IO. More...
class | IoCloser
| Utility class that closes a BasicIo instance upon destruction. Meant to be used as a stack variable in functions that need to ensure BasicIo instances get closed. Useful when functions return errors from many locations. More...
class | FileIo
| Provides binary file IO by implementing the BasicIo interface. More...
class | MemIo
| Provides binary IO on blocks of memory by implementing the BasicIo interface. A copy-on-write implementation ensures that the data passed in is only copied when necessary, i.e., as soon as data is written to the MemIo. The original data is only used for reading. If writes are performed, the changed data can be retrieved using the read methods (since the data used in construction is never modified). More...
class | CanonMakerNote
| MakerNote for Canon cameras. More...
class | CrwImage
| Class to access raw Canon Crw images. Only Exif metadata and a comment are supported. Crw format does not contain Iptc metadata. More...
class | CrwParser
class | CiffComponent
| Interface class for components of the CIFF directory hierarchy of a Crw (Canon Raw data) image. Both CIFF directories as well as entries implement this interface. This class is implemented as NVI (non-virtual interface). More...
class | CiffEntry
| This class models one directory entry of a CIFF directory of a Crw (Canon Raw data) image. More...
class | CiffDirectory
| This class models a CIFF directory of a Crw (Canon Raw data) image. More...
class | CiffHeader
| This class models the header of a Crw (Canon Raw data) image. It is the head of a CIFF parse tree, consisting of CiffDirectory and CiffEntry objects. Most of its methods will walk the parse tree to perform the requested action. More...
struct | CrwSubDir
| Structure for the CIFF directory hierarchy. More...
struct | CrwMapping
| Structure for a mapping table for conversion of CIFF entries to image metadata and vice versa. More...
class | CrwMap
| Static class providing mapping functionality from Crw entries to image metadata and vice versa. More...
struct | RecordInfo
| Contains information about one record. More...
struct | DataSet
| Dataset information. More...
class | IptcDataSets
| Container for Iptc dataset information. Implemented as a static class. More...
class | IptcKey
| Concrete keys for Iptc metadata. More...
struct | ErrMsg
| Helper structure defining an error message. More...
class | AnyError
| Error class interface. Allows the definition and use of a hierarchy of error classes which can all be handled in one catch block. More...
class | Error
| Simple error class used for exceptions. An output operator is provided to print errors to a stream. More...
class | Exifdatum
| Information related to one Exif tag. An Exif metadatum consists of an ExifKey and a Value and provides methods to manipulate these. More...
class | Thumbnail
| Exif Thumbnail image. This abstract base class provides the interface for the thumbnail image that is optionally embedded in the Exif data. This class is used internally by ExifData, it is probably not useful for a client as a standalone class. Instead, use an instance of ExifData to access the Exif thumbnail image. More...
class | TiffThumbnail
| Exif thumbnail image in TIFF format. More...
class | JpegThumbnail
| Exif thumbnail image in JPEG format. More...
class | FindMetadatumByIfdIdIdx
| Unary predicate that matches a Exifdatum with a given ifd id and idx. More...
class | ExifData
| A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifdatum objects. More...
class | FujiMakerNote
| MakerNote for Fujifilm cameras. More...
class | Entry
| Data structure for one IFD directory entry. See the description of class Ifd for an explanation of the supported modes for memory allocation. More...
class | FindEntryByIdx
| Unary predicate that matches an Entry with a given index. More...
class | FindEntryByTag
| Unary predicate that matches an Entry with a given tag. More...
class | Ifd
| Models an IFD (Image File Directory). More...
class | Image
| Abstract base class defining the interface for an image. This is the top-level interface to the Exiv2 library. More...
class | ImageFactory
| Returns an Image instance of the specified type. More...
class | TiffHeader
| Helper class modelling the TIFF header structure. More...
class | Iptcdatum
| Information related to one Iptc dataset. An Iptc metadatum consists of an IptcKey and a Value and provides methods to manipulate these. More...
class | FindMetadatumById
| Unary predicate that matches an Iptcdatum with given record and dataset. More...
class | IptcData
| A container for Iptc data. This is a top-level class of the Exiv2 library. More...
struct | Photoshop
| Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs). More...
class | JpegBase
| Abstract helper base class to access JPEG images. More...
class | JpegImage
| Class to access JPEG images. More...
class | ExvImage
| Helper class to access Exiv2 files. More...
class | MakerNote
| Exif makernote interface. More...
class | IfdMakerNote
| Interface for MakerNotes in IFD format. See MakerNote. More...
class | MakerNoteFactory
| Factory for MakerNote objects. More...
struct | TiffMnRegistry
| Makernote registry structure. More...
class | TiffMnCreator
| TIFF makernote factory for concrete TIFF makernotes. More...
class | MnHeader
| Makernote header interface. This class is used with TIFF makernotes. More...
class | TiffIfdMakernote
| Tiff IFD Makernote. This is a concrete class suitable for all IFD makernotes. More...
class | OlympusMnHeader
| Header of an Olympus Makernote. More...
class | FujiMnHeader
| Header of a Fujifilm Makernote. More...
class | Nikon2MnHeader
| Header of a Nikon 2 Makernote. More...
class | Nikon3MnHeader
| Header of a Nikon 3 Makernote. More...
class | PanasonicMnHeader
| Header of a Panasonic Makernote. More...
class | SigmaMnHeader
| Header of a Sigma Makernote. More...
class | SonyMnHeader
| Header of a Sony Makernote. More...
class | Key
| Abstract base class defining the Key of a metadatum. Keys are used to identify and group metadata. More...
class | Metadatum
| Abstract base class defining the interface to access information related to one metadata tag. More...
class | FindMetadatumByKey
| Unary predicate that matches a Exifdatum with a given key. More...
class | MinoltaMakerNote
| MakerNote for Minolta cameras. More...
class | MrwImage
| Class to access raw MRW images. Exif metadata is supported directly, IPTC is read from the Exif data, if present. More...
class | Nikon1MakerNote
| A MakerNote format used by Nikon cameras, such as the E990 and D1. More...
class | Nikon2MakerNote
| A second MakerNote format used by Nikon cameras, including the E700, E800, E900, E900S, E910, E950. More...
class | Nikon3MakerNote
| A third MakerNote format used by Nikon cameras, e.g., E5400, SQ, D2H, D70. More...
class | OlympusMakerNote
| MakerNote for Olympus cameras. More...
class | PanasonicMakerNote
| MakerNote for Panasonic cameras. More...
class | SigmaMakerNote
| MakerNote for Sigma (Foveon) cameras. More...
class | SonyMakerNote
| MakerNote for Sony cameras. More...
struct | IfdInfo
| Contains information pertaining to one IFD. More...
struct | SectionInfo
| Contains information pertaining to one section. More...
struct | TagInfo
| Tag information. More...
struct | TagDetails
| Helper structure for lookup tables for translations of numeric tag values to human readable labels. More...
class | ExifTags
| Container for Exif tag information. Implemented as a static class. More...
class | ExifKey
| Concrete keys for Exif metadata. More...
struct | TiffGroupInfo
| Structure for group and group name info. More...
class | TiffComponent
| Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern). More...
struct | TiffStructure
| Data structure used as a row (element) of a table (array) describing the TIFF structure of an image format for reading and writing. Different tables can be used to support different TIFF based image formats. More...
class | TiffEntryBase
| This abstract base class provides the common functionality of an IFD directory entry and defines an extended interface for derived concrete entries, which allows access to the attributes of the entry. More...
class | TiffEntry
| A standard TIFF IFD entry. More...
class | TiffDataEntry
| A standard TIFF IFD entry consisting of a value which is an offset to a data area and the data area. The size of the data area is provided in a related TiffSizeEntry, tag and group of which are set in the constructor. This component is used, e.g., for Exif.Thumbnail.JPEGInterchangeFormat for which the size is provided in Exif.Thumbnail.JPEGInterchangeFormatLength. More...
class | TiffSizeEntry
| A TIFF IFD entry containing the size of a data area of a related TiffDataEntry. This component is used, e.g. for Exif.Thumbnail.JPEGInterchangeFormatLength, which contains the size of Exif.Thumbnail.JPEGInterchangeFormat. More...
class | TiffDirectory
| This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More...
class | TiffSubIfd
| This class models a TIFF sub-directory (sub-IFD). A sub-IFD is an entry with one or more values that are pointers to IFD structures containing an IFD. The TIFF standard defines some important tags to be sub-IFDs, including the Exif and GPS tags. More...
class | TiffMnEntry
| This class is the basis for Makernote support in TIFF. It contains a pointer to a concrete Makernote. The TiffReader visitor has the responsibility to create the correct Make/Model specific Makernote for a particular TIFF file. Calls to child management methods are forwarded to the concrete Makernote, if there is one. More...
class | TiffArrayEntry
| Composite to model an array of tags, each consisting of one unsigned short value. Canon and Minolta makernotes use such tags. The elements of this component are usually of type TiffArrayElement. More...
class | TiffArrayElement
| Element of a TiffArrayEntry. The value is exactly one unsigned short component. Canon and Minolta makernotes use arrays of such elements. More...
class | TiffImage
| Class to access raw TIFF images. Exif metadata and a comment are supported directly, IPTC is read from the Exif data, if present. More...
class | TiffHeade2
| This class models a TIFF header structure. More...
class | TiffCreator
| TIFF component factory for standard TIFF components. More...
class | TiffParser
| Stateless parser class for data in TIFF format. Images use this class to decode and encode TIFF-based data. Uses class CreationPolicy for the creation of TIFF components. More...
class | TiffVisitor
| Abstract base class defining the interface for TIFF composite vistors (Visitor pattern). More...
class | TiffFinder
| Search the composite for a component with tag and group. Return a pointer to the component or 0, if not found. The class is ready for a first search after construction and can be re-initialized with init(). More...
struct | TiffDecoderInfo
| TIFF decoder table. More...
class | TiffMetadataDecoder
| TIFF composite visitor to decode metadata from the TIFF tree and add it to an Image, which is supplied in the constructor (Visitor pattern). Used by TiffParser to decode the metadata from a TIFF composite. More...
class | TiffRwState
| Simple state class containing relevant state information for the TIFF reader. This is in a separate class so that the reader can change state if needed (e.g., to read certain complex makernotes). More...
class | TiffReader
| TIFF composite visitor to read the TIFF structure from a block of memory and build the composite from it (Visitor pattern). Used by TiffParser to read the TIFF data from a block of memory. More...
class | TiffPrinter
| TIFF composite visitor to print the TIFF structure to an output stream. More...
struct | TypeInfoTable
| Information pertaining to the defined types. More...
class | TypeInfo
| Type information lookup functions. Implemented as a static class. More...
struct | DataBufRef
| Auxiliary type to enable copies and assignments, similar to std::auto_ptr_ref. See http://www.josuttis.com/libbook/auto_ptr.html for a discussion. More...
class | DataBuf
| Utility class containing a character array. All it does is to take care of memory allocation and deletion. Its primary use is meant to be as a stack variable in functions that need a temporary data buffer. Todo: this should be some sort of smart pointer, essentially an std::auto_ptr for a character array. But it isn't... More...
class | Value
| Common interface for all types of values used with metadata. More...
class | DataValue
| Value for an undefined data type. More...
class | StringValueBase
| Abstract base class for a string based Value type. More...
class | StringValue
| Value for string type. More...
class | AsciiValue
| Value for an Ascii string type. More...
class | CommentValue
| Value for an Exif comment. More...
class | DateValue
| Value for simple ISO 8601 dates More...
class | TimeValue
| Value for simple ISO 8601 times. More...
class | ValueType
| Template for a Value of a basic type. This is used for unsigned and signed short, long and rationals. More...
## Namespaces
namespace | Group
namespace | ImageType
| Supported image formats.

namespace | Tag
## Functions printing interpreted tag values
std::ostream & | printValue (std::ostream &os, const Value &value)
| Default print function, using the Value output operator.
std::ostream & | printLong (std::ostream &os, const Value &value)
| Print the value converted to a long.
std::ostream & | printFloat (std::ostream &os, const Value &value)
| Print a Rational or URational value in floating point format.
std::ostream & | printUnit (std::ostream &os, const Value &value)
| Print the unit for measuring X and Y resolution.
std::ostream & | print0x0103 (std::ostream &os, const Value &value)
| Print the compression scheme used for the image data.
std::ostream & | print0x0106 (std::ostream &os, const Value &value)
| Print the pixel composition.
std::ostream & | print0x0112 (std::ostream &os, const Value &value)
| Print the orientation.
std::ostream & | print0x0213 (std::ostream &os, const Value &value)
| Print the YCbCrPositioning.
std::ostream & | print0x8298 (std::ostream &os, const Value &value)
| Print the copyright.
std::ostream & | print0x829a (std::ostream &os, const Value &value)
| Print the exposure time.
std::ostream & | print0x829d (std::ostream &os, const Value &value)
| Print the f-number.
std::ostream & | print0x8822 (std::ostream &os, const Value &value)
| Print the exposure mode.
std::ostream & | print0x8827 (std::ostream &os, const Value &value)
| Print ISO speed ratings.
std::ostream & | print0x9101 (std::ostream &os, const Value &value)
| Print components configuration specific to compressed data.
std::ostream & | print0x9201 (std::ostream &os, const Value &value)
| Print exposure time converted from APEX shutter speed value.
std::ostream & | print0x9202 (std::ostream &os, const Value &value)
| Print f-number converted from APEX aperture value.
std::ostream & | print0x9204 (std::ostream &os, const Value &value)
| Print the exposure bias value.
std::ostream & | print0x9206 (std::ostream &os, const Value &value)
| Print the subject distance.
std::ostream & | print0x9207 (std::ostream &os, const Value &value)
| Print the metering mode.
std::ostream & | print0x9208 (std::ostream &os, const Value &value)
| Print the light source.
std::ostream & | print0x9209 (std::ostream &os, const Value &value)
| Print the flash status.
std::ostream & | print0x920a (std::ostream &os, const Value &value)
| Print the actual focal length of the lens.
std::ostream & | print0x9286 (std::ostream &os, const Value &value)
| Print the user comment.
std::ostream & | print0xa001 (std::ostream &os, const Value &value)
| Print color space information.
std::ostream & | print0xa217 (std::ostream &os, const Value &value)
| Print info on image sensor type on the camera or input device.
std::ostream & | print0xa300 (std::ostream &os, const Value &value)
| Print file source.
std::ostream & | print0xa301 (std::ostream &os, const Value &value)
| Print scene type.
std::ostream & | print0xa402 (std::ostream &os, const Value &value)
| Print the exposure mode.
std::ostream & | print0xa403 (std::ostream &os, const Value &value)
| Print white balance information.
std::ostream & | print0xa404 (std::ostream &os, const Value &value)
| Print digital zoom ratio.
std::ostream & | print0xa405 (std::ostream &os, const Value &value)
| Print 35mm equivalent focal length.
std::ostream & | print0xa406 (std::ostream &os, const Value &value)
| Print scene capture type.
std::ostream & | print0xa407 (std::ostream &os, const Value &value)
| Print overall image gain adjustment.
std::ostream & | print0xa408 (std::ostream &os, const Value &value)
| Print contract adjustment.
std::ostream & | print0xa409 (std::ostream &os, const Value &value)
| Print saturation adjustment.
std::ostream & | print0xa40a (std::ostream &os, const Value &value)
| Print sharpness adjustment.
std::ostream & | print0xa40c (std::ostream &os, const Value &value)
| Print subject distance range.
## Typedefs
typedef void(* | CrwDecodeFct )(const CiffComponent &, const CrwMapping *, Image &, ByteOrder)
| Function pointer for functions to decode Exif tags from a Crw entry.
typedef void(* | CrwEncodeFct )(const Image &, const CrwMapping *, CiffHeader *)
| Function pointer for functions to encode Crw entries from Exif tags.
typedef std::stack< CrwSubDir > | CrwDirs
| Stack to hold a path of Crw directories.
typedef std::vector< Exifdatum > | ExifMetadata
| Container type to hold all metadata.
typedef std::vector< Entry > | Entries
| Container type to hold all IFD directory entries.
typedef std::vector< byte > | Blob
| Container for binary image.
typedef Image::AutoPtr(* | NewInstanceFct )(BasicIo::AutoPtr io, bool create)
| Type for function pointer that creates new Image instances.
typedef bool(* | IsThisTypeFct )(BasicIo &iIo, bool advance)
| Type for function pointer that checks image types.
typedef std::vector< Iptcdatum > | IptcMetadata
| Container type to hold all metadata.
typedef MakerNote::AutoPtr(* | CreateFct )(bool, const byte *, long, ByteOrder, long)
| Type for a pointer to a function creating a makernote.
typedef TiffComponent *(* | NewMnFct )(uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Type for a pointer to a function creating a makernote.
typedef std::ostream &(* | PrintFct )(std::ostream &, const Value &)
| Type for a function pointer for functions interpreting the tag value.
typedef TiffComponent::AutoPtr(* | NewTiffCompFct )(uint16_t tag, const TiffStructure *ts)
typedef TiffComponent::AutoPtr(* | TiffCompFactoryFct )(uint32_t extendedTag, uint16_t group)
typedef std::vector< TiffDirectory * > | Ifds
| A collection of TIFF directories (IFDs).
typedef void(TiffMetadataDecoder::* | DecoderFct )(const TiffEntryBase *)
| Function pointer type for a function to decode a TIFF component.
typedef uint8_t | byte
| 1 byte unsigned integer type.
typedef std::pair< uint32_t, uint32_t > | URational
| 8 byte unsigned rational type.
typedef std::pair< int32_t, int32_t > | Rational
| 8 byte signed rational type.
typedef ValueType< uint16_t > | UShortValue
| Unsigned short value type.
typedef ValueType< uint32_t > | ULongValue
| Unsigned long value type.
typedef ValueType< URational > | URationalValue
| Unsigned rational value type.
typedef ValueType< int16_t > | ShortValue
| Signed short value type.
typedef ValueType< int32_t > | LongValue
| Signed long value type.
typedef ValueType< Rational > | RationalValue
| Signed rational value type.
## Enumerations
enum | SectionId { sectionIdNotSet, imgStruct, recOffset, imgCharacter, otherTags, exifFormat, exifVersion, imgConfig, userInfo, relatedFile, dateTime, captureCond, gpsTags, iopTags, makerTags, lastSectionId }
| Section identifiers to logically group tags. A section consists of nothing more than a name, based on the Exif standard.
enum | ByteOrder { invalidByteOrder, littleEndian, bigEndian }
| Type to express the byte order (little or big endian).
enum | MetadataId { mdExif = 1, mdIptc = 2, mdComment = 4 }
| An identifier for each type of metadata.
enum | TypeId { invalidTypeId, unsignedByte, asciiString, unsignedShort, unsignedLong, unsignedRational, invalid6, undefined, signedShort, signedLong, signedRational, string, date, time, comment, directory, lastTypeId }
| Type identifiers for IFD format types.
enum | IfdId { ifdIdNotSet, ifd0Id, exifIfdId, gpsIfdId, iopIfdId, ifd1Id, canonIfdId, canonCs1IfdId, canonCs2IfdId, canonCfIfdId, fujiIfdId, minoltaIfdId, minoltaCs5DIfdId, minoltaCs7DIfdId, minoltaCsOldIfdId, minoltaCsNewIfdId, nikon1IfdId, nikon2IfdId, nikon3IfdId, olympusIfdId, panasonicIfdId, sigmaIfdId, sonyIfdId, lastIfdId }
| Type to specify the IFD to which a metadata belongs.
enum | DataLocId { invalidDataLocId, valueData, directoryData, lastDataLocId }
| Type to identify where the data is stored in a directory.
## Functions
MakerNote::AutoPtr | createCanonMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
float | canonEv (long val)
| Convert Canon hex-based EV (modulo 0x20) to real number Ported from Phil Harvey's Image::ExifTool::Canon::CanonEv by Will Stokes.
Image::AutoPtr | newCrwInstance (BasicIo::AutoPtr io, bool create)
| Create a new CrwImage instance and return an auto-pointer to it. Caller owns the returned object and the auto-pointer ensures that it will be deleted.
bool | isCrwType (BasicIo &iIo, bool advance)
| Check if the file iIo is a Crw image.
DataBuf | packIfdId (const ExifData &exifData, IfdId ifdId, ByteOrder byteOrder)
| Pack the tag values of all ifdId tags in exifData into a data buffer. This function is used to pack Canon Camera Settings1,2 and Custom Function tags.
std::ostream & | operator<< (std::ostream &os, const DataSet &dataSet)
| Output operator for dataSet.
std::ostream & | operator<< (std::ostream &os, const AnyError &error)
| AnyBase output operator
IfdId | hasMakerNote (const ExifData &exifData)
| Returns the IfdId of the first Exif makernote tag it finds in the Exif metadata or ifdIdNotSet if there is no Exif makernote tag.
void | addToIfd (Ifd &ifd, ExifMetadata::const_iterator begin, ExifMetadata::const_iterator end, ByteOrder byteOrder)
| Add all metadata in the range from iterator position begin to iterator position end, which have an IFD id matching that of the IFD to the list of directory entries of ifd. No duplicate checks are performed, i.e., it is possible to add multiple metadata with the same key to an IFD.
void | addToIfd (Ifd &ifd, const Exifdatum &exifdatum, ByteOrder byteOrder)
| Add the Exifdatum to the IFD. No duplicate checks are performed, i.e., it is possible to add multiple metadata with the same key to an IFD.
void | addToMakerNote (MakerNote *makerNote, ExifMetadata::const_iterator begin, ExifMetadata::const_iterator end, ByteOrder byteOrder)
| Add all metadata in the range from iterator position begin to iterator position end with IFD id 'makerIfd' to the list of makernote entries of the object pointed to be makerNote. No duplicate checks are performed, i.e., it is possible to add multiple metadata with the same key to a makernote.
void | addToMakerNote (MakerNote *makerNote, const Exifdatum &exifdatum, ByteOrder byteOrder)
| Add the Exifdatum to makerNote, encoded in byte order byteOrder. No duplicate checks are performed, i.e., it is possible to add multiple metadata with the same key to a makernote.
std::ostream & | operator<< (std::ostream &os, const Exifdatum &md)
| Output operator for Exifdatum types, prints the interpreted tag value.
template<typename T>
Exifdatum & | setValue (Exifdatum &exifDatum, const T &value)
| Set the value of exifDatum to value. If the object already has a value, it is replaced. Otherwise a new ValueType<T> value is created and set to value.
MakerNote::AutoPtr | createFujiMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
bool | fileExists (const std::string &path, bool ct=false)
| Test if a file exists.
std::string | strError ()
| Return a system error message and the error code (errno). See strerror(3).
bool | cmpEntriesByTag (const Entry &lhs, const Entry &rhs)
| Compare two IFD entries by tag. Return true if the tag of entry lhs is less than that of rhs.
bool | cmpPreEntriesByOffset (const Ifd::PreEntry &lhs, const Ifd::PreEntry &rhs)
| Compare two 'pre-IFD entries' by offset, taking care of special cases where one or both of the entries don't have an offset. Return true if the offset of entry lhs is less than that of rhs, else false. By definition, entries without an offset are greater than those with an offset.
void | append (Blob &blob, const byte *buf, uint32_t len)
| Append len bytes pointed to by buf to blob.
std::ostream & | operator<< (std::ostream &os, const Iptcdatum &md)
| Output operator for Iptcdatum types, printing the interpreted tag value.
Image::AutoPtr | newJpegInstance (BasicIo::AutoPtr io, bool create)
| Create a new JpegImage instance and return an auto-pointer to it. Caller owns the returned object and the auto-pointer ensures that it will be deleted.
bool | isJpegType (BasicIo &iIo, bool advance)
| Check if the file iIo is a JPEG image.
Image::AutoPtr | newExvInstance (BasicIo::AutoPtr io, bool create)
| Create a new ExvImage instance and return an auto-pointer to it. Caller owns the returned object and the auto-pointer ensures that it will be deleted.
bool | isExvType (BasicIo &iIo, bool advance)
| Check if the file iIo is an EXV file.
TiffComponent * | newCanonMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Canon makernote.
TiffComponent * | newMinoltaMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Minolta makernote.
TiffComponent * | newOlympusMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create an Olympus makernote.
TiffComponent * | newFujiMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Fujifilm makernote.
TiffComponent * | newNikonMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Nikon makernote. This will create the appropriate Nikon 1, 2 or 3 makernote, based on the arguments.
TiffComponent * | newPanasonicMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Panasonic makernote.
TiffComponent * | newSigmaMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Sigma makernote.
TiffComponent * | newSonyMn (uint16_t tag, uint16_t group, uint16_t mnGroup, const byte *pData, uint32_t size, ByteOrder byteOrder)
| Function to create a Sony makernote.
std::ostream & | operator<< (std::ostream &os, const Metadatum &md)
| Output operator for Metadatum types, printing the interpreted tag value.
bool | cmpMetadataByTag (const Metadatum &lhs, const Metadatum &rhs)
| Compare two metadata by tag. Return true if the tag of metadatum lhs is less than that of rhs.
bool | cmpMetadataByKey (const Metadatum &lhs, const Metadatum &rhs)
| Compare two metadata by key. Return true if the key of metadatum lhs is less than that of rhs.
std::ostream & | operator<< (std::ostream &os, const Key &key)
| Output operator for Key types.
MakerNote::AutoPtr | createMinoltaMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
Image::AutoPtr | newMrwInstance (BasicIo::AutoPtr io, bool create)
| Create a new MrwImage instance and return an auto-pointer to it. Caller owns the returned object and the auto-pointer ensures that it will be deleted.
bool | isMrwType (BasicIo &iIo, bool advance)
| Check if the file iIo is a MRW image.
MakerNote::AutoPtr | createNikonMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
MakerNote::AutoPtr | createOlympusMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
MakerNote::AutoPtr | createPanasonicMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
MakerNote::AutoPtr | createSigmaMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
MakerNote::AutoPtr | createSonyMakerNote (bool alloc, const byte *buf, long len, ByteOrder byteOrder, long offset)
| Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted.
bool | isExifIfd (IfdId ifdId)
| Return true if ifdId is an Exif Ifd Id, i.e., one of ifd0Id, exifIfdId, gpsIfdId, iopIfdId or ifd1Id, else false. This is used to differentiate between standard Exif Ifds and Ifds associated with the makernote.
std::ostream & | operator<< (std::ostream &os, const TagInfo &ti)
| Output operator for TagInfo.
std::ostream & | operator<< (std::ostream &os, const Rational &r)
| Output operator for our fake rational.
std::istream & | operator>> (std::istream &is, Rational &r)
| Input operator for our fake rational.
std::ostream & | operator<< (std::ostream &os, const URational &r)
| Output operator for our fake unsigned rational.
std::istream & | operator>> (std::istream &is, URational &r)
| Input operator for our fake unsigned rational.
float | fnumber (float apertureValue)
| Calculate F number from an APEX aperture value.
URational | exposureTime (float shutterSpeedValue)
| Calculate the exposure time from an APEX shutter speed value.
template<int N, const TagDetails & array>
std::ostream & | printTag (std::ostream &os, const Value &value)
| Generic print function to translate a long value to a description by looking up a reference table.
const char * | tiffGroupName (uint16_t group)
| Return the group name for a group.
TiffComponent::AutoPtr | newTiffDirectory (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF directory.
TiffComponent::AutoPtr | newTiffSubIfd (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF sub-directory.
TiffComponent::AutoPtr | newTiffMnEntry (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF makernote entry.
TiffComponent::AutoPtr | newTiffThumbData (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF entry for a Jpeg thumbnail (data).
TiffComponent::AutoPtr | newTiffThumbSize (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new TIFF entry for a Jpeg thumbnail (size).
template<uint16_t elSize>
TiffComponent::AutoPtr | newTiffArrayEntry (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new array entry.
template<TypeId typeId, ByteOrder byteOrder>
TiffComponent::AutoPtr | newTiffArrayElement (uint16_t tag, const TiffStructure *ts)
| Function to create and initialize a new array element.
Image::AutoPtr | newTiffInstance (BasicIo::AutoPtr io, bool create)
| Create a new TiffImage instance and return an auto-pointer to it. Caller owns the returned object and the auto-pointer ensures that it will be deleted.
bool | isTiffType (BasicIo &iIo, bool advance)
| Check if the file iIo is a TIFF image.
uint16_t | getUShort (const byte *buf, ByteOrder byteOrder)
| Read a 2 byte unsigned short value from the data buffer.
uint32_t | getULong (const byte *buf, ByteOrder byteOrder)
| Read a 4 byte unsigned long value from the data buffer.
URational | getURational (const byte *buf, ByteOrder byteOrder)
| Read an 8 byte unsigned rational value from the data buffer.
int16_t | getShort (const byte *buf, ByteOrder byteOrder)
| Read a 2 byte signed short value from the data buffer.
int32_t | getLong (const byte *buf, ByteOrder byteOrder)
| Read a 4 byte signed long value from the data buffer.
Rational | getRational (const byte *buf, ByteOrder byteOrder)
| Read an 8 byte signed rational value from the data buffer.
long | us2Data (byte *buf, uint16_t s, ByteOrder byteOrder)
| Convert an unsigned short to data, write the data to the buffer, return number of bytes written.
long | ul2Data (byte *buf, uint32_t l, ByteOrder byteOrder)
| Convert an unsigned long to data, write the data to the buffer, return number of bytes written.
long | ur2Data (byte *buf, URational l, ByteOrder byteOrder)
| Convert an unsigned rational to data, write the data to the buffer, return number of bytes written.
long | s2Data (byte *buf, int16_t s, ByteOrder byteOrder)
| Convert a signed short to data, write the data to the buffer, return number of bytes written.
long | l2Data (byte *buf, int32_t l, ByteOrder byteOrder)
| Convert a signed long to data, write the data to the buffer, return number of bytes written.
long | r2Data (byte *buf, Rational l, ByteOrder byteOrder)
| Convert a signed rational to data, write the data to the buffer, return number of bytes written.
void | hexdump (std::ostream &os, const byte *buf, long len, long offset=0)
| Print len bytes from buf in hex and ASCII format to the given stream, prefixed with the position in the buffer adjusted by offset.
bool | isHex (const std::string &str, size_t size=0, const std::string &prefix="")
| Return true if str is a hex number starting with prefix followed by size hex digits, false otherwise. If size is 0, any number of digits is allowed and all are checked.
int | exifTime (const char *buf, struct tm *tm)
| Converts a string in the form "%Y:%m:%d %H:%M:%S", e.g., "2007:05:24 12:31:55" to broken down time format, returns 0 if successful, else 1.
template<typename T, typename K, int N>
const T * | find (T(&src)[N], const K &key)
| Find an element that matches key in the array src.
template<typename T, int N>
| char (&sizer(T(&)[N]))[N]
| Template used in the COUNTOF macro to determine the size of an array.
template<typename T>
std::string | toString (const T &arg)
| Utility function to convert the argument of any type to a string.
template<typename IntType>
IntType | gcd (IntType n, IntType m)
| Return the greatest common denominator of n and m. (implementation from Boost rational.hpp).
std::ostream & | operator<< (std::ostream &os, const Value &value)
| Output operator for Value types.
template<typename T>
TypeId | getType ()
| Template to determine the TypeId for a type T.
template<>
TypeId | getType< uint16_t > ()
| Specialization for an unsigned short.
template<>
TypeId | getType< uint32_t > ()
| Specialization for an unsigned long.
template<>
TypeId | getType< URational > ()
| Specialization for an unsigned rational.
template<>
TypeId | getType< int16_t > ()
| Specialization for a signed short.
template<>
TypeId | getType< int32_t > ()
| Specialization for a signed long.
template<>
TypeId | getType< Rational > ()
| Specialization for a signed rational.
template<typename T>
T | getValue (const byte *buf, ByteOrder byteOrder)
| Read a value of type T from the data buffer.
template<typename T>
long | toData (byte *buf, T t, ByteOrder byteOrder)
| Convert a value of type T to data, write the data to the data buffer.
template<>
long | toData (byte *buf, uint16_t t, ByteOrder byteOrder)
| Specialization to write an unsigned short to the data buffer. Return the number of bytes written.
template<>
long | toData (byte *buf, uint32_t t, ByteOrder byteOrder)
| Specialization to write an unsigned long to the data buffer. Return the number of bytes written.
template<>
long | toData (byte *buf, URational t, ByteOrder byteOrder)
| Specialization to write an unsigned rational to the data buffer. Return the number of bytes written.
template<>
long | toData (byte *buf, int16_t t, ByteOrder byteOrder)
| Specialization to write a signed short to the data buffer. Return the number of bytes written.
template<>
long | toData (byte *buf, int32_t t, ByteOrder byteOrder)
| Specialization to write a signed long to the data buffer. Return the number of bytes written.
template<>
long | toData (byte *buf, Rational t, ByteOrder byteOrder)
| Specialization to write a signed rational to the data buffer. Return the number of bytes written.
## Variables
const TagDetails | minoltaColorMode []
| Lookup table to translate Minolta color mode values to readable labels.
const TagDetails | minoltaImageQuality []
| Lookup table to translate Minolta image quality values to readable labels.
const TagDetails | minoltaZoneMatching []
| Lookup table to translate Minolta zone matching values.
const TagDetails | minoltaImageStabilization []
| Lookup table to translate Minolta image stabilization values.
const TagDetails | minoltaLensID []
| Lookup table to translate Minolta Lens id values to readable labels.
const TagDetails | minoltaExposureModeStd []
| Lookup table to translate Minolta Std camera settings exposure mode values to readable labels.
const TagDetails | minoltaFlashModeStd []
| Lookup table to translate Minolta Std camera settings exposure mode values to readable labels.
const TagDetails | minoltaWhiteBalanceStd []
| Lookup table to translate Minolta Std camera settings white balance values to readable labels.
const TagDetails | minoltaImageSizeStd []
| Lookup table to translate Minolta Std camera settings image size values to readable labels.
const TagDetails | minoltaImageQualityStd []
| Lookup table to translate Minolta Std camera settings image quality values to readable labels.
const TagDetails | minoltaDriveModeStd []
| Lookup table to translate Minolta Std camera settings drive mode values to readable labels.
const TagDetails | minoltaMeteringModeStd []
| Lookup table to translate Minolta Std camera settings metering mode values to readable labels.
const TagDetails | minoltaMacroModeStd []
| Lookup table to translate Minolta Std camera settings macro mode values to readable labels.
const TagDetails | minoltaDigitalZoomStd []
| Lookup table to translate Minolta Std camera settings digital zoom values to readable labels.
const TagDetails | minoltaBracketStepStd []
| Lookup table to translate Minolta Std camera bracket step mode values to readable labels.
const TagDetails | minoltaAFPointsStd []
| Lookup table to translate Minolta Std camera settings AF points values to readable labels.
const TagDetails | minoltaFlashStd []
| Lookup table to translate Minolta Std camera settings white balance values to readable labels.
const TagDetails | minoltaFileNumberMemoryStd []
| Lookup table to translate Minolta Std camera settings file number memory values to readable labels.
const TagDetails | minoltaSharpnessStd []
| Lookup table to translate Minolta Std camera settings sharpness values to readable labels.
const TagDetails | minoltaSubjectProgramStd []
| Lookup table to translate Minolta Std camera settings subject program values to readable labels.
const TagDetails | minoltaISOSettingStd []
| Lookup table to translate Minolta Std camera settings ISO settings values to readable labels.
const TagDetails | minoltaModelStd []
| Lookup table to translate Minolta Std camera settings model values to readable labels.
const TagDetails | minoltaIntervalModeStd []
| Lookup table to translate Minolta Std camera settings interval mode values to readable labels.
const TagDetails | minoltaFolderNameStd []
| Lookup table to translate Minolta Std camera settings folder name values to readable labels.
const TagDetails | minoltaColorModeStd []
| Lookup table to translate Minolta Std camera settings color mode values to readable labels.
const TagDetails | minoltaInternalFlashStd []
| Lookup table to translate Minolta Std camera settings internal flash values to readable labels.
const TagDetails | minoltaWideFocusZoneStd []
| Lookup table to translate Minolta Std camera settings wide focus zone values to readable labels.
const TagDetails | minoltaFocusModeStd []
| Lookup table to translate Minolta Std camera settings focus mode values to readable labels.
const TagDetails | minoltaFocusAreaStd []
| Lookup table to translate Minolta Std camera settings focus area values to readable labels.
const TagDetails | minoltaDECPositionStd []
| Lookup table to translate Minolta Std camera settings DEC switch position values to readable labels.
const TagDetails | minoltaColorProfileStd []
| Lookup table to translate Minolta Std camera settings color profile values to readable labels.
const TagDetails | minoltaDataImprintStd []
| Lookup table to translate Minolta Std camera settings data Imprint values to readable labels.
const TagDetails | minoltaFlashMeteringStd []
| Lookup table to translate Minolta Std camera settings flash metering values to readable labels.
const TagDetails | minoltaExposureMode7D []
| Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels.
const TagDetails | minoltaImageSize7D []
| Lookup table to translate Minolta Dynax 7D camera settings image size values to readable labels.
const TagDetails | minoltaImageQuality7D []
| Lookup table to translate Minolta Dynax 7D camera settings image quality values to readable labels.
const TagDetails | minoltaWhiteBalance7D []
| Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels.
const TagDetails | minoltaFocusMode7D []
| Lookup table to translate Minolta Dynax 7D camera settings focus mode values to readable labels.
const TagDetails | minoltaAFPoints7D []
| Lookup table to translate Minolta Dynax 7D camera settings AF points values to readable labels.
const TagDetails | minoltaFlash7D []
| Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels.
const TagDetails | minoltaISOSetting7D []
| Lookup table to translate Minolta Dynax 7D camera settings ISO settings values to readable labels.
const TagDetails | minoltaColorSpace7D []
| Lookup table to translate Minolta Dynax 7D camera settings color space values to readable labels.
const TagDetails | minoltaRotation7D []
| Lookup table to translate Minolta Dynax 7D camera settings rotation values to readable labels.
const TagDetails | minoltaNoiseReduction7D []
| Lookup table to translate Minolta Dynax 7D camera settings noise reduction values to readable labels.
const TagDetails | minoltaImageStabilization7D []
| Lookup table to translate Minolta Dynax 7D camera settings image stabilization values to readable labels.
const TagDetails | minoltaZoneMatchingOn7D []
| Lookup table to translate Minolta Dynax 7D camera settings zone matching on values to readable labels.
const TagDetails | minoltaImageSize5D []
| Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels.
const TagDetails | minoltaExposureMode5D []
| Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels.
const TagDetails | minoltaImageQuality5D []
| Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels.
const TagDetails | minoltaWhiteBalance5D []
| Lookup table to translate Minolta Dynax 5D camera settings white balance values to readable labels.
const TagDetails | minoltaFlash5D []
| Lookup table to translate Minolta Dynax 5D camera settings flash labels.
const TagDetails | minoltaMeteringMode5D []
| Lookup table to translate Minolta Dynax 5D camera settings metering mode values to readable labels.
const TagDetails | minoltaISOSetting5D []
| Lookup table to translate Minolta Dynax 5D camera settings ISO settings values to readable labels.
const TagDetails | minoltaRotation5D []
| Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels.
const TagDetails | minoltaNoiseReduction5D []
| Lookup table to translate Minolta Dynax 5D camera settings noise reduction values to readable labels.
const TagDetails | minoltaImageStabilization5D []
| Lookup table to translate Minolta Dynax 5D camera settings image stabilization values to readable labels.
const TagDetails | minoltaFocusPosition5D []
| Lookup table to translate Minolta Dynax 5D camera settings focus position values to readable labels.
const TagDetails | minoltaFocusArea5D []
| Lookup table to translate Minolta Dynax 5D camera settings focus area values to readable labels.
const TagDetails | minoltaAFMode5D []
| Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels.
const TagDetails | minoltaFocusMode5D []
| Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels.
const TagDetails | olympusQuality []
| Quality, tag 0x0201.
const TagDetails | olympusMacro []
| Macro, tag 0x0202.
const TagDetails | olympusOneTouchWb []
| OneTouchWB, tag 0x0302.
const TagDetails | olympusFlashDevice []
| FlashDevice, tag 0x1005.
const TagDetails | panasonicQuality []
| Quality, tag 0x0001.
const TagDetails | panasonicWhiteBalance []
| WhiteBalance, tag 0x0003.
const TagDetails | panasonicFocusMode []
| FocusMode, tag 0x0007.
const TagDetails | panasonicImageStabilizer []
| ImageStabilizer, tag 0x001a.
const TagDetails | panasonicMacro []
| Macro, tag 0x001c.
const TagDetails | panasonicShootingMode []
| ShootingMode, tag 0x001f.
const TagDetails | panasonicAudio []
| Audio, tag 0x0020.
const TagDetails | panasonicColorEffect []
| ColorEffect, tag 0x0028.
const TagDetails | panasonicContrast []
| Contrast, tag 0x002c.
const TagDetails | panasonicNoiseReduction []
| NoiseReduction, tag 0x002d.
const TagDetails | exifNewSubfileType []
| NewSubfileType, TIFF tag 0x00fe - this is actually a bitmask.
const TiffGroupInfo | tiffGroupInfo []
| List of groups and their names.

## Detailed Description

Provides classes and functions to encode and decode Exif and Iptc data. This namespace corresponds to the libexiv2 library.

## Typedef Documentation

typedef TiffComponent::AutoPtr(* Exiv2::NewTiffCompFct)(uint16_t tag, const TiffStructure *ts)

| Type for a function pointer for a function to create a TIFF component.

typedef TiffComponent::AutoPtr(* Exiv2::TiffCompFactoryFct)(uint32_t extendedTag, uint16_t group)

| Type for a factory function to create new TIFF components.

## Function Documentation

float Exiv2::canonEv | ( | long | val | ) |

| Convert Canon hex-based EV (modulo 0x20) to real number Ported from Phil Harvey's Image::ExifTool::Canon::CanonEv by Will Stokes. 0x00 -> 0 0x0c -> 0.33333 0x10 -> 0.5 0x14 -> 0.66666 0x20 -> 1 .. 160 -> 5 128 -> 4 143 -> 4.46875

MakerNote::AutoPtr Exiv2::createCanonMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createFujiMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createMinoltaMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createNikonMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createOlympusMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createPanasonicMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createSigmaMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

MakerNote::AutoPtr Exiv2::createSonyMakerNote | ( | bool | alloc,
|  | const byte * | buf,
|  | long | len,
|  | ByteOrder | byteOrder,
|  | long | offset
| ) |

  | Return an auto-pointer to a newly created empty MakerNote initialized to operate in the memory management model indicated. The caller owns this copy and the auto-pointer ensures that it will be deleted. Parameters:
  | alloc | Memory management model for the new MakerNote. Determines if memory required to store data should be allocated and deallocated (true) or not (false). If false, only pointers to the buffer provided to read() will be kept. See Ifd for more background on this concept.
  | buf | Pointer to the makernote character buffer (not used).
  | len | Length of the makernote character buffer (not used).
  | byteOrder | Byte order in which the Exif data (and possibly the makernote) is encoded (not used).
  | offset | Offset from the start of the TIFF header of the makernote buffer (not used).
Returns: An auto-pointer to a newly created empty MakerNote. The caller owns this copy and the auto-pointer ensures that it will be deleted.

bool Exiv2::fileExists | ( | const std::string & | path,
|  | bool | ct = `false`
| ) |

  | Test if a file exists. Parameters:
  | path | Name of file to verify.
  | ct | Flag to check if path is a regular file.
Returns: true if path exists and, if ct is set, is a regular file, else false. Note: The function calls stat() test for path and its type, see stat(2). errno is left unchanged in case of an error.

template<typename T, typename K, int N>
const T* Exiv2::find | ( | T & | src[N],
|  | const K & | key
| ) |

| Find an element that matches key in the array src. Designed to be used with lookup tables as shown in the example below. Requires a Key structure (ideally in the array) and a comparison operator to compare a key with an array element. The size of the array is determined automagically. Thanks to Stephan Broennimann for this nifty implementation.
          struct Bar {
              int i;
              int k;
              const char* data;

              struct Key;
              bool operator==(const Bar::Key& rhs) const;
          };

          struct Bar::Key {
              Key(int a, int b) : i(a), k(b) {}
              int i;
              int k;
          };

          bool Bar::operator==(const Bar::Key& key) const // definition
          {
              return i == key.i && k == key.k;
          }

          const Bar bars[] = {
              { 1, 1, "bar data 1" },
              { 1, 2, "bar data 2" },
              { 1, 3, "bar data 3" }
          };

          int main ( void ) {
              const Bar* bar = find(bars, Bar::Key(1, 3));
              if (bar) std::cout << bar->data << "\n";
              else std::cout << "Key not found.\n";
              return 0;
          }

template<typename IntType>
IntType Exiv2::gcd | ( | IntType | n,
|  | IntType | m
| ) |

| Return the greatest common denominator of n and m. (implementation from Boost rational.hpp). Note: We use n and m as temporaries in this function, so there is no value in using const IntType& as we would only need to make a copy anyway...

template<typename T>
Rational Exiv2::getValue | ( | const byte * | buf,
|  | ByteOrder | byteOrder
| ) | `[inline]`

  | Read a value of type T from the data buffer. We need this template function for the ValueType template classes. There are only specializations of this function available; no default implementation is provided. Parameters:
  | buf | Pointer to the data buffer to read from.
  | byteOrder | Applicable byte order (little or big endian).
Returns: A value of type T.

template<typename T>
Exifdatum & Exiv2::setValue | ( | Exifdatum & | exifDatum,
|  | const T & | value
| ) |

| Set the value of exifDatum to value. If the object already has a value, it is replaced. Otherwise a new ValueType<T> value is created and set to value. This is a helper function, called from Exifdatum members. It is meant to be used with T = (u)int16_t, (u)int32_t or (U)Rational. Do not use directly.

template<typename T>
long Exiv2::toData | ( | byte * | buf,
|  | T | t,
|  | ByteOrder | byteOrder
| ) |

  | Convert a value of type T to data, write the data to the data buffer. We need this template function for the ValueType template classes. There are only specializations of this function available; no default implementation is provided. Parameters:
  | buf | Pointer to the data buffer to write to.
  | t | Value to be converted.
  | byteOrder | Applicable byte order (little or big endian).
Returns: The number of bytes written to the buffer.

## Variable Documentation

const TagDetails Exiv2::exifNewSubfileType[]

| Initial value:
     {
            {  0, "Primary image"                                               },
            {  1, "Thumbnail/Preview image"                                     },
            {  2, "Primary image, Multi page file"                              },
            {  3, "Thumbnail/Preview image, Multi page file"                    },
            {  4, "Primary image, Transparency mask"                            },
            {  5, "Thumbnail/Preview image, Transparency mask"                  },
            {  6, "Primary image, Multi page file, Transparency mask"           },
            {  7, "Thumbnail/Preview image, Multi page file, Transparency mask" }
        }
NewSubfileType, TIFF tag 0x00fe - this is actually a bitmask.

const TagDetails Exiv2::minoltaAFMode5D[]

| Initial value:
     {
            { 0, "AF-A" },
            { 1, "AF-S" },
            { 2, "AF-D" },
            { 3, "DMF"  }
        }
Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels.

const TagDetails Exiv2::minoltaAFPoints7D[]

| Initial value:
     {
            { 0, "Center"        },
            { 1, "Top"           },
            { 2, "Top-Right"     },
            { 3, "Right"         },
            { 4, "Bottom-Right " },
            { 5, "Bottom"        },
            { 6, "Bottom-Left"   },
            { 7, "Left"          },
            { 8, "Top-Left"      }
        }
Lookup table to translate Minolta Dynax 7D camera settings AF points values to readable labels.

const TagDetails Exiv2::minoltaAFPointsStd[]

| Initial value:
     {
            { 0, "Center"        },
            { 1, "Top"           },
            { 2, "Top-Right"     },
            { 3, "Right"         },
            { 4, "Bottom-Right " },
            { 5, "Bottom"        },
            { 6, "Bottom-Left"   },
            { 7, "Left"          },
            { 8, "Top-Left"      }
        }
Lookup table to translate Minolta Std camera settings AF points values to readable labels.

const TagDetails Exiv2::minoltaBracketStepStd[]

| Initial value:
     {
            { 0, "1/3 EV" },
            { 1, "2/3 EV" },
            { 2, "1 EV"   }
        }
Lookup table to translate Minolta Std camera bracket step mode values to readable labels.

const TagDetails Exiv2::minoltaColorMode[]

| Initial value:
     {
            { 0,  "Natural Color" },
            { 1,  "Black & White" },
            { 2,  "Vivid Color"   },
            { 3,  "Solarization"  },
            { 4,  "AdobeRGB"      },
            { 13, "Natural sRGB"  },
            { 14, "Natural+ sRGB" }
        }
Lookup table to translate Minolta color mode values to readable labels.

const TagDetails Exiv2::minoltaColorModeStd[]

| Initial value:
     {
            { 0, "Natural color" },
            { 1, "Black & White" },
            { 2, "Vivid color"   },
            { 3, "Solarization"  },
            { 4, "Adobe RGB"     }
        }
Lookup table to translate Minolta Std camera settings color mode values to readable labels.

const TagDetails Exiv2::minoltaColorProfileStd[]

| Initial value:
     {
            { 0, "Not Embedded" },
            { 1, "Embedded"     }
        }
Lookup table to translate Minolta Std camera settings color profile values to readable labels.

const TagDetails Exiv2::minoltaColorSpace7D[]

| Initial value:
     {
            { 0, "sRGB (Natural)"  },
            { 1, "sRGB (Natural+)" },
            { 4, "Adobe RGB"       }
        }
Lookup table to translate Minolta Dynax 7D camera settings color space values to readable labels.

const TagDetails Exiv2::minoltaDataImprintStd[]

| Initial value:
     {
            { 0, "None"        },
            { 1, "YYYY/MM/DD"  },
            { 2, "MM/DD/HH:MM" },
            { 3, "Text"        },
            { 4, "Text + ID#"  }
        }
Lookup table to translate Minolta Std camera settings data Imprint values to readable labels.

const TagDetails Exiv2::minoltaDECPositionStd[]

| Initial value:
     {
            { 0, "Exposure "  },
            { 1, "Contrast"   },
            { 2, "Saturation" },
            { 3, "Filter"     }
        }
Lookup table to translate Minolta Std camera settings DEC switch position values to readable labels.

const TagDetails Exiv2::minoltaDigitalZoomStd[]

| Initial value:
     {
            { 0, "Off"                      },
            { 1, "Electronic magnification" },
            { 2, "2x"                       }
        }
Lookup table to translate Minolta Std camera settings digital zoom values to readable labels.

const TagDetails Exiv2::minoltaDriveModeStd[]

| Initial value:
     {
            { 0, "Single"         },
            { 1, "Continuous"     },
            { 2, "Self-timer"     },
            { 4, "Bracketing"     },
            { 5, "Interval"       },
            { 6, "UHS continuous" },
            { 7, "HS continuous"  }
        }
Lookup table to translate Minolta Std camera settings drive mode values to readable labels.

const TagDetails Exiv2::minoltaExposureMode5D[]

| Initial value:
     {
            { 0,    "Program"           },
            { 1,    "Aperture Priority" },
            { 2,    "Shutter Priority"  },
            { 3,    "Manual"            },
            { 4,    "Auto"              },
            { 4131, "Connected Copying" }
        }
Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels.

const TagDetails Exiv2::minoltaExposureMode7D[]

| Initial value:
     {
            { 0, "Program"           },
            { 1, "Aperture Priority" },
            { 2, "Shutter Priority"  },
            { 3, "Manual"            },
            { 4, "Auto"              },
            { 5, "Program-shift A"   },
            { 5, "Program-shift S"   }
        }
Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels.

const TagDetails Exiv2::minoltaExposureModeStd[]

| Initial value:
     {
            { 0, "Program"           },
            { 1, "Aperture Priority" },
            { 2, "Shutter Priority"  },
            { 3, "Manual"            }
        }
Lookup table to translate Minolta Std camera settings exposure mode values to readable labels.

const TagDetails Exiv2::minoltaFileNumberMemoryStd[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Std camera settings file number memory values to readable labels.

const TagDetails Exiv2::minoltaFlash5D[]

| Initial value:
     {
            { 0, "Did not fire" },
            { 1, "Fired"        }
        }
Lookup table to translate Minolta Dynax 5D camera settings flash labels.

const TagDetails Exiv2::minoltaFlash7D[]

| Initial value:
     {
            { 0, "Did not fire" },
            { 1, "Fired"        }
        }
Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels.

const TagDetails Exiv2::minoltaFlashMeteringStd[]

| Initial value:
     {
            { 0, "ADI (Advanced Distance Integration)" },
            { 1, "Pre-flash TTl"                       },
            { 2, "Manual flash control"                }
        }
Lookup table to translate Minolta Std camera settings flash metering values to readable labels.

const TagDetails Exiv2::minoltaFlashModeStd[]

| Initial value:
     {
            { 0, "Fill flash"        },
            { 1, "Red-eye reduction" },
            { 2, "Rear flash sync"   },
            { 3, "Wireless"          }
        }
Lookup table to translate Minolta Std camera settings exposure mode values to readable labels.

const TagDetails Exiv2::minoltaFlashStd[]

| Initial value:
     {
            { 0, "Did not fire" },
            { 1, "Fired"        }
        }
Lookup table to translate Minolta Std camera settings white balance values to readable labels.

const TagDetails Exiv2::minoltaFocusArea5D[]

| Initial value:
     {
            { 0, "Wide"      },
            { 1, "Selection" },
            { 2, "Spot"      }
        }
Lookup table to translate Minolta Dynax 5D camera settings focus area values to readable labels.

const TagDetails Exiv2::minoltaFocusAreaStd[]

| Initial value:
     {
            { 0, "Wide Focus (normal)" },
            { 1, "Spot Focus"          }
        }
Lookup table to translate Minolta Std camera settings focus area values to readable labels.

const TagDetails Exiv2::minoltaFocusMode5D[]

| Initial value:
     {
            { 0, "AF" },
            { 1, "MF" }
        }
Lookup table to translate Minolta Dynax 5D camera settings focus mode values to readable labels.

const TagDetails Exiv2::minoltaFocusMode7D[]

| Initial value:
     {
            { 0, "Single-shot AF" },
            { 1, "Continuous AF"  },
            { 3, "Automatic AF"   },
            { 4, "Manual"         }
        }
Lookup table to translate Minolta Dynax 7D camera settings focus mode values to readable labels.

const TagDetails Exiv2::minoltaFocusModeStd[]

| Initial value:
     {
            { 0, "Auto focus"   },
            { 1, "Manual focus" }
        }
Lookup table to translate Minolta Std camera settings focus mode values to readable labels.

const TagDetails Exiv2::minoltaFocusPosition5D[]

| Initial value:
     {
            { 0, "Wide"       },
            { 1, "Central"    },
            { 2, "Up"         },
            { 3, "Up Right"   },
            { 4, "Right"      },
            { 5, "Down Right" },
            { 6, "Down"       },
            { 7, "Down Left"  },
            { 8, "Left"       },
            { 9, "Up Left"    }
        }
Lookup table to translate Minolta Dynax 5D camera settings focus position values to readable labels.

const TagDetails Exiv2::minoltaFolderNameStd[]

| Initial value:
     {
            { 0, "Standard Form" },
            { 1, "Data Form"     }
        }
Lookup table to translate Minolta Std camera settings folder name values to readable labels.

const TagDetails Exiv2::minoltaImageQuality[]

| Initial value:
     {
            { 0, "Raw"       },
            { 1, "Superfine" },
            { 2, "Fine"      },
            { 3, "Standard"  },
            { 4, "Economy"   },
            { 5, "Extrafine" }
        }
Lookup table to translate Minolta image quality values to readable labels.

const TagDetails Exiv2::minoltaImageQuality5D[]

| Initial value:
     {
            { 0,  "Raw"      },
            { 16, "Fine"     },
            { 32, "Normal"   },
            { 34, "Raw+Jpeg" },
            { 48, "Economy"  }
        }
Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels.

const TagDetails Exiv2::minoltaImageQuality7D[]

| Initial value:
     {
            { 0,  "Raw"      },
            { 16, "Fine"     },
            { 32, "Normal"   },
            { 34, "Raw+Jpeg" },
            { 48, "Economy"  }
        }
Lookup table to translate Minolta Dynax 7D camera settings image quality values to readable labels.

const TagDetails Exiv2::minoltaImageQualityStd[]

| Initial value:
     {
            { 0, "Raw"        },
            { 1, "Superfine"  },
            { 2, "Fine"       },
            { 3, "Standard"   },
            { 4, "Economy"    },
            { 5, "Extra Fine" }
        }
Lookup table to translate Minolta Std camera settings image quality values to readable labels.

const TagDetails Exiv2::minoltaImageSize5D[]

| Initial value:
     {
            { 0, "Large"  },
            { 1, "Medium" },
            { 2, "Small"  }
        }
Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels.

const TagDetails Exiv2::minoltaImageSize7D[]

| Initial value:
     {
            { 0, "Large"  },
            { 1, "Medium" },
            { 2, "Small"  }
        }
Lookup table to translate Minolta Dynax 7D camera settings image size values to readable labels.

const TagDetails Exiv2::minoltaImageSizeStd[]

| Initial value:
     {
            { 0, "Full"      },
            { 1, "1600x1200" },
            { 2, "1280x960"  },
            { 3, "640x480"   },
            { 6, "2080x1560" },
            { 7, "2560x1920" },
            { 8, "3264x2176" }
        }
Lookup table to translate Minolta Std camera settings image size values to readable labels.

const TagDetails Exiv2::minoltaImageStabilization[]

| Initial value:
     {
            { 1, "Off" },
            { 5, "On"  }
        }
Lookup table to translate Minolta image stabilization values.

const TagDetails Exiv2::minoltaImageStabilization5D[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Dynax 5D camera settings image stabilization values to readable labels.

const TagDetails Exiv2::minoltaImageStabilization7D[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Dynax 7D camera settings image stabilization values to readable labels.

const TagDetails Exiv2::minoltaInternalFlashStd[]

| Initial value:
     {
            { 0, "Did not fire" },
            { 1, "Fired"        }
        }
Lookup table to translate Minolta Std camera settings internal flash values to readable labels.

const TagDetails Exiv2::minoltaIntervalModeStd[]

| Initial value:
     {
            { 0, "Still Image"      },
            { 1, "Time-lapse Movie" }
        }
Lookup table to translate Minolta Std camera settings interval mode values to readable labels.

const TagDetails Exiv2::minoltaISOSetting5D[]

| Initial value:
     {
            { 0,  "Auto"                     },
            { 1,  "100"                      },
            { 3,  "200"                      },
            { 4,  "400"                      },
            { 5,  "800"                      },
            { 6,  "1600"                     },
            { 7,  "3200"                     },
            { 8,  "200 (Zone Matching High)" },
            { 10, "80 (Zone Matching Low)"   }
        }
Lookup table to translate Minolta Dynax 5D camera settings ISO settings values to readable labels.

const TagDetails Exiv2::minoltaISOSetting7D[]

| Initial value:
     {
            { 1, "100"  },
            { 3, "200"  },
            { 4, "400"  },
            { 5, "800"  },
            { 6, "1600" },
            { 7, "3200" }
        }
Lookup table to translate Minolta Dynax 7D camera settings ISO settings values to readable labels.

const TagDetails Exiv2::minoltaISOSettingStd[]

| Initial value:
     {
            { 0, "100"  },
            { 1, "200"  },
            { 2, "400"  },
            { 3, "800"  },
            { 4, "Auto" },
            { 5, "64"   }
        }
Lookup table to translate Minolta Std camera settings ISO settings values to readable labels.

const TagDetails Exiv2::minoltaMacroModeStd[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Std camera settings macro mode values to readable labels.

const TagDetails Exiv2::minoltaMeteringMode5D[]

| Initial value:
     {
            { 0, "Multi-segment"   },
            { 1, "Center weighted" },
            { 2, "Spot"            }
        }
Lookup table to translate Minolta Dynax 5D camera settings metering mode values to readable labels.

const TagDetails Exiv2::minoltaMeteringModeStd[]

| Initial value:
     {
            { 0, "Multi-segment"   },
            { 1, "Center weighted" },
            { 2, "Spot"            }
        }
Lookup table to translate Minolta Std camera settings metering mode values to readable labels.

const TagDetails Exiv2::minoltaModelStd[]

| Initial value:
     {
            { 0, "DiMAGE 7 or X31"   },
            { 1, "DiMAGE 5"          },
            { 2, "DiMAGE S304"       },
            { 3, "DiMAGE S404"       },
            { 4, "DiMAGE 7i"         },
            { 5, "DiMAGE 7Hi"        },
            { 6, "DiMAGE A1"         },
            { 7, "DiMAGE A2 or S414" }
        }
Lookup table to translate Minolta Std camera settings model values to readable labels.

const TagDetails Exiv2::minoltaNoiseReduction5D[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Dynax 5D camera settings noise reduction values to readable labels.

const TagDetails Exiv2::minoltaNoiseReduction7D[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Dynax 7D camera settings noise reduction values to readable labels.

const TagDetails Exiv2::minoltaRotation5D[]

| Initial value:
     {
            { 72, "Horizontal (normal)" },
            { 76, "Rotate 90 CW"        },
            { 82, "Rotate 270 CW"       }
        }
Lookup table to translate Minolta Dynax 5D camera settings rotation values to readable labels.

const TagDetails Exiv2::minoltaRotation7D[]

| Initial value:
     {
            { 72, "Horizontal (normal)" },
            { 76, "Rotate 90 CW"        },
            { 82, "Rotate 270 CW"       }
        }
Lookup table to translate Minolta Dynax 7D camera settings rotation values to readable labels.

const TagDetails Exiv2::minoltaSharpnessStd[]

| Initial value:
     {
            { 0, "Hard"   },
            { 1, "Normal" },
            { 2, "Soft"   }
        }
Lookup table to translate Minolta Std camera settings sharpness values to readable labels.

const TagDetails Exiv2::minoltaSubjectProgramStd[]

| Initial value:
     {
            { 0, "None"           },
            { 1, "Portrait"       },
            { 2, "Text"           },
            { 3, "Night portrait" },
            { 4, "Sunset"         },
            { 5, "Sports action"  }
        }
Lookup table to translate Minolta Std camera settings subject program values to readable labels.

const TagDetails Exiv2::minoltaWhiteBalance5D[]

| Initial value:
     {
            { 0,   "Auto"        },
            { 1,   "Daylight"    },
            { 2,   "Cloudy"      },
            { 3,   "Shade"       },
            { 4,   "Tungsten"    },
            { 5,   "Fluorescent" },
            { 6,   "Flash"       },
            { 256, "Kelvin"      },
            { 512, "Manual"      }
        }
Lookup table to translate Minolta Dynax 5D camera settings white balance values to readable labels.

const TagDetails Exiv2::minoltaWhiteBalance7D[]

| Initial value:
     {
            { 0,   "Auto"        },
            { 1,   "Daylight"    },
            { 2,   "Shade"       },
            { 3,   "Cloudy"      },
            { 4,   "Tungsten"    },
            { 5,   "Fluorescent" },
            { 256, "Kelvin"      },
            { 512, "Manual"      }
        }
Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels.

const TagDetails Exiv2::minoltaWhiteBalanceStd[]

| Initial value:
     {
            { 0,  "Auto"          },
            { 1,  "Daylight"      },
            { 2,  "Cloudy"        },
            { 3,  "Tungsten"      },
            { 5,  "Custom"        },
            { 7,  "Fluorescent"   },
            { 8,  "Fluorescent 2" },
            { 11, "Custom 2"      },
            { 12, "Custom 3"      }
        }
Lookup table to translate Minolta Std camera settings white balance values to readable labels.

const TagDetails Exiv2::minoltaWideFocusZoneStd[]

| Initial value:
     {
            { 0, "No zone"                              },
            { 1, "Center zone (horizontal orientation)" },
            { 1, "Center zone (vertical orientation)"   },
            { 1, "Left zone "                           },
            { 4, "Right zone"                           }
        }
Lookup table to translate Minolta Std camera settings wide focus zone values to readable labels.

const TagDetails Exiv2::minoltaZoneMatching[]

| Initial value:
     {
            { 0, "ISO Setting Used" },
            { 1, "High Key"         },
            { 2, "Low Key"          }
        }
Lookup table to translate Minolta zone matching values.

const TagDetails Exiv2::minoltaZoneMatchingOn7D[]

| Initial value:
     {
            { 0, "Off" },
            { 1, "On"  }
        }
Lookup table to translate Minolta Dynax 7D camera settings zone matching on values to readable labels.

const TagDetails Exiv2::olympusFlashDevice[]

| Initial value:
     {
            {  0, "None"                },
            {  1, "Internal"            },
            {  4, "External"            },
            {  4, "Internal + External" }
        }
FlashDevice, tag 0x1005.

const TagDetails Exiv2::olympusMacro[]

| Initial value:
     {
            {  0, "Off"         },
            {  1, "On"          },
            {  2, "Super Macro" }
        }
Macro, tag 0x0202.

const TagDetails Exiv2::olympusOneTouchWb[]

| Initial value:
     {
            {  0, "Off"         },
            {  1, "On"          },
            {  2, "On (Preset)" }
        }
OneTouchWB, tag 0x0302.

const TagDetails Exiv2::olympusQuality[]

| Initial value:
     {
            { 1, "Standard Quality (SQ)"    },
            { 2, "High Quality (HQ)"        },
            { 3, "Super High Quality (SHQ)" },
            { 6, "Raw"                      }
        }
Quality, tag 0x0201.

const TagDetails Exiv2::panasonicAudio[]

| Initial value:
     {
            { 1, "Yes" },
            { 2, "No"  }
        }
Audio, tag 0x0020.

const TagDetails Exiv2::panasonicColorEffect[]

| Initial value:
     {
            { 1, "Off"             },
            { 2, "Warm"            },
            { 3, "Cool"            },
            { 4, "Black and White" },
            { 5, "Sepia"           }
        }
ColorEffect, tag 0x0028.

const TagDetails Exiv2::panasonicContrast[]

| Initial value:
     {
            {     0, "Standard" },
            {     1, "Low"      },
            {     2, "High"     },
            { 0x100, "Low"      },
            { 0x110, "Standard" },
            { 0x120, "High"     }
        }
Contrast, tag 0x002c.

const TagDetails Exiv2::panasonicFocusMode[]

| Initial value:
     {
            {  1, "Auto" },
            {  2, "Manual" }
        }
FocusMode, tag 0x0007.

const TagDetails Exiv2::panasonicImageStabilizer[]

| Initial value:
     {
            {  2, "On, Mode 1" },
            {  3, "Off"        },
            {  4, "On, Mode 2" }
        }
ImageStabilizer, tag 0x001a.

const TagDetails Exiv2::panasonicMacro[]

| Initial value:
     {
            { 1, "On"  },
            { 2, "Off" }
        }
Macro, tag 0x001c.

const TagDetails Exiv2::panasonicNoiseReduction[]

| Initial value:
     {
            { 0, "Standard" },
            { 1, "Low"      },
            { 2, "High"     }
        }
NoiseReduction, tag 0x002d.

const TagDetails Exiv2::panasonicQuality[]

| Initial value:
     {
            { 2, "High"      },
            { 3, "Standard"  },
            { 6, "Very High" },
            { 7, "Raw"       }
        }
Quality, tag 0x0001.

const TagDetails Exiv2::panasonicShootingMode[]

| Initial value:
     {
            {  1, "Normal"            },
            {  2, "Portrait"          },
            {  3, "Scenery"           },
            {  4, "Sports"            },
            {  5, "Night Portrait"    },
            {  6, "Program"           },
            {  7, "Aperture Priority" },
            {  8, "Shutter Priority"  },
            {  9, "Macro"             },
            { 11, "Manual"            },
            { 13, "Panning"           },
            { 18, "Fireworks"         },
            { 19, "Party"             },
            { 20, "Snow"              },
            { 21, "Night Scenery"     }
        }
ShootingMode, tag 0x001f.

const TagDetails Exiv2::panasonicWhiteBalance[]

| Initial value:
     {
            {  1, "Auto"            },
            {  2, "Daylight"        },
            {  3, "Cloudy"          },
            {  4, "Halogen"         },
            {  5, "Manual"          },
            {  8, "Flash"           },
            { 10, "Black and White" }
        }
WhiteBalance, tag 0x0003.