Classes | |
class | Exiv2::CanonMakerNote |
MakerNote for Canon cameras. More... | |
struct | Exiv2::CanonMakerNote::RegisterMakerNote |
Structure used to auto-register the MakerNote. | |
struct | Exiv2::RecordInfo |
Contains information about one record. More... | |
struct | Exiv2::DataSet |
Dataset information. More... | |
class | Exiv2::IptcDataSets |
Container for Iptc dataset information. Implemented as a static class. More... | |
class | Exiv2::IptcKey |
Concrete keys for Iptc metadata. More... | |
class | Exiv2::Error |
Very simple error class used for exceptions. It contains just an error message. An output operator is provided to print errors to a stream. More... | |
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... | |
class | Exiv2::FujiMakerNote |
MakerNote for Fujifilm cameras. More... | |
struct | Exiv2::FujiMakerNote::RegisterMakerNote |
Structure used to auto-register the MakerNote. | |
class | Exiv2::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 | Exiv2::FindEntryByIdx |
Unary predicate that matches an Entry with a given index. More... | |
class | Exiv2::FindEntryByTag |
Unary predicate that matches an Entry with a given tag. More... | |
class | Exiv2::Ifd |
Models an IFD (Image File Directory). More... | |
struct | Exiv2::Ifd::PreEntry |
Helper structure to build IFD entries. | |
class | Exiv2::Image |
Abstract base class defining the interface for an image. More... | |
class | Exiv2::ImageFactory |
Image factory. More... | |
struct | Exiv2::ImageFactory::ImageFcts |
Struct for storing image function pointers. | |
class | Exiv2::JpegBase |
Abstract helper base class to access JPEG images. More... | |
class | Exiv2::JpegImage |
Helper class to access JPEG images. More... | |
class | Exiv2::ExvImage |
Helper class to access Exiv2 files. More... | |
class | Exiv2::TiffHeader |
Helper class modelling the TIFF header structure. More... | |
class | Exiv2::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 | Exiv2::FindMetadatumById |
Unary predicate that matches an Iptcdatum with given record and dataset. More... | |
class | Exiv2::IptcData |
A container for Iptc data. This is a top-level class of the Exiv2 library. More... | |
class | Exiv2::MakerNote |
Exif makernote interface. More... | |
struct | Exiv2::MakerNote::MnTagInfo |
MakerNote Tag information. More... | |
class | Exiv2::IfdMakerNote |
Interface for MakerNotes in IFD format. See MakerNote. More... | |
class | Exiv2::MakerNoteFactory |
Factory for MakerNote objects. More... | |
class | Exiv2::Key |
Abstract base class defining the Key of a metadatum. Keys are used to identify and group metadata. More... | |
class | Exiv2::Metadatum |
Abstract base class defining the interface to access information related to one metadata tag. More... | |
class | Exiv2::FindMetadatumByKey |
Unary predicate that matches a Exifdatum with a given key. More... | |
class | Exiv2::Nikon1MakerNote |
A MakerNote format used by Nikon cameras, such as the E990 and D1. More... | |
struct | Exiv2::Nikon1MakerNote::RegisterMakerNote |
Structure used to auto-register the MakerNote. | |
class | Exiv2::Nikon2MakerNote |
A second MakerNote format used by Nikon cameras, including the E700, E800, E900, E900S, E910, E950. More... | |
struct | Exiv2::Nikon2MakerNote::RegisterMakerNote |
Structure used to auto-register the MakerNote. | |
class | Exiv2::Nikon3MakerNote |
A third MakerNote format used by Nikon cameras, e.g., E5400, SQ, D2H, D70. More... | |
struct | Exiv2::Nikon3MakerNote::RegisterMakerNote |
Structure used to auto-register the MakerNote. | |
class | Exiv2::SigmaMakerNote |
MakerNote for Sigma (Foveon) cameras. More... | |
struct | Exiv2::SigmaMakerNote::RegisterMakerNote |
Structure used to auto-register the MakerNote. | |
struct | Exiv2::IfdInfo |
Contains information pertaining to one IFD. More... | |
struct | Exiv2::SectionInfo |
Contains information pertaining to one section. More... | |
struct | Exiv2::TagInfo |
Tag information. More... | |
class | Exiv2::ExifTags |
Container for Exif tag information. Implemented as a static class. More... | |
class | Exiv2::ExifKey |
Concrete keys for Exif metadata. More... | |
struct | Exiv2::TypeInfoTable |
Information pertaining to the defined types. More... | |
class | Exiv2::TypeInfo |
Type information lookup functions. Implemented as a static class. More... | |
struct | Exiv2::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 | Exiv2::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 | Exiv2::FileCloser |
Utility class that closes a file stream pointer upon destruction. Its primary use is to be a stack variable in functions that need to ensure files get closed. Useful when functions return errors from many locations. More... | |
class | Exiv2::Value |
Common interface for all types of values used with metadata. More... | |
class | Exiv2::DataValue |
Value for an undefined data type. More... | |
class | Exiv2::StringValueBase |
Abstract base class for a string based Value type. More... | |
class | Exiv2::StringValue |
Value for string type. More... | |
class | Exiv2::AsciiValue |
Value for an Ascii string type. More... | |
class | Exiv2::DateValue |
Value for simple ISO 8601 dates More... | |
struct | Exiv2::DateValue::Date |
Simple Date helper structure. More... | |
class | Exiv2::TimeValue |
Value for simple ISO 8601 times. More... | |
struct | Exiv2::TimeValue::Time |
Simple Time helper structure. More... | |
class | Exiv2::ValueType< T > |
Template for a Value of a basic type. This is used for unsigned and signed short, long and rationals. More... | |
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 & | 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 std::vector< Exifdatum > | ExifMetadata |
Container type to hold all metadata. | |
typedef std::vector< Entry > | Entries |
Container type to hold all IFD directory entries. | |
typedef Image::AutoPtr(* | NewInstanceFct )(const std::string &path, bool create) |
Type for function pointer that creates new Image instances. | |
typedef bool(* | IsThisTypeFct )(FILE *ifp, 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 std::ostream &(* | PrintFct )(std::ostream &, const Value &) |
Type for a function pointer for functions interpreting the tag value. | |
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, 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 | TypeId { invalidTypeId, unsignedByte, asciiString, unsignedShort, unsignedLong, unsignedRational, invalid6, undefined, signedShort, signedLong, signedRational, string, date, time, lastTypeId } |
Type identifiers for IFD format types. | |
enum | IfdId { ifdIdNotSet, ifd0Id, exifIfdId, gpsIfdId, makerIfdId, iopIfdId, ifd1Id, lastIfdId } |
Type to specify the IFD to which a metadata belongs. | |
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. | |
std::ostream & | operator<< (std::ostream &os, const DataSet &dataSet) |
Output operator for dataSet. | |
std::ostream & | operator<< (std::ostream &os, const Error &error) |
Error output operator | |
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 &md, 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 &md, 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 | 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. | |
Image::AutoPtr | newExvInstance (const std::string &path, 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 (FILE *ifp, bool advance) |
Check if the file ifp is an EXV file. | |
Image::AutoPtr | newJpegInstance (const std::string &path, 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 (FILE *ifp, bool advance) |
Check if the file ifp is a JPEG image. | |
bool | fileExists (const std::string &path, bool ct) |
Test if a file exists. | |
std::ostream & | operator<< (std::ostream &os, const Iptcdatum &md) |
Output operator for Iptcdatum types, printing the interpreted tag value. | |
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 | 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 | 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. | |
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. | |
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) |
Print len bytes from buf in hex and ASCII format to the given stream, prefixed with the position in the buffer adjusted by offset. | |
int | gcd (int a, int b) |
Return the greatest common denominator of integers a and b. Both parameters must be greater than 0. | |
long | lgcd (long a, long b) |
Return the greatest common denominator of long values a and b. Both parameters must be greater than 0. | |
bool | isHex (const std::string &str, size_t size, 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. | |
template<typename T> | |
std::string | toString (const T &arg) |
Utility function to convert the argument of any type to a string. | |
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. |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Test if a file exists.
|
|
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.
|
|
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. |
|
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.
|