# exif.hpp File Reference

Encoding and decoding of Exif data. More...

`#include "metadatum.hpp"`
`#include "types.hpp"`
`#include "error.hpp"`
`#include "value.hpp"`
`#include "ifd.hpp"`
`#include "tags.hpp"`
`#include <string>`
`#include <vector>`
`#include <memory>`

Include dependency graph for exif.hpp:

This graph shows which files directly or indirectly include this file:

## Namespaces

namespace | Exiv2

## Classes

class | Exiv2::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 | Exiv2::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 | Exiv2::TiffThumbnail
| Exif thumbnail image in TIFF format. More...
class | Exiv2::JpegThumbnail
| Exif thumbnail image in JPEG format. More...
class | Exiv2::FindMetadatumByIfdIdIdx
| Unary predicate that matches a Exifdatum with a given ifd id and idx. More...
class | Exiv2::ExifData
| A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifdatum objects. More...

## Typedefs

typedef std::vector< Exifdatum > | Exiv2::ExifMetadata
| Container type to hold all metadata.

## Functions

std::ostream & | Exiv2::operator<< (std::ostream &os, const Exifdatum &md)
| Output operator for Exifdatum types, prints the interpreted tag value.
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.
IfdId | Exiv2::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 | Exiv2::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 | Exiv2::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 | Exiv2::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 | Exiv2::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.

## Detailed Description

Encoding and decoding of Exif data.

Version:
  Rev
    769

Author:
  Andreas Huggel (ahu) ahuggel@gmx.net

Date:
  09-Jan-04, ahu: created