Exiv2
exif.hpp
Go to the documentation of this file.
1 // ***************************************************************** -*- C++ -*-
2 /*
3  * Copyright (C) 2004-2018 Exiv2 authors
4  * This program is part of the Exiv2 distribution.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
19  */
27 #ifndef EXIF_HPP_
28 #define EXIF_HPP_
29 
30 // *****************************************************************************
31 #include "exiv2lib_export.h"
32 
33 // included header files
34 #include "metadatum.hpp"
35 #include "tags.hpp"
36 
37 // + standard includes
38 #include <list>
39 
40 // *****************************************************************************
41 // namespace extensions
46 namespace Exiv2 {
47 
48 // *****************************************************************************
49 // class declarations
50  class ExifData;
51 
52 // *****************************************************************************
53 // class definitions
54 
59  class EXIV2API Exifdatum : public Metadatum {
60  template<typename T> friend Exifdatum& setValue(Exifdatum&, const T&);
61  public:
63 
64 
75  explicit Exifdatum(const ExifKey& key, const Value* pValue =0);
77  Exifdatum(const Exifdatum& rhs);
79  virtual ~Exifdatum();
81 
83 
84  Exifdatum& operator=(const Exifdatum& rhs);
90  Exifdatum& operator=(const uint16_t& value);
95  Exifdatum& operator=(const uint32_t& value);
100  Exifdatum& operator=(const URational& value);
105  Exifdatum& operator=(const int16_t& value);
110  Exifdatum& operator=(const int32_t& value);
115  Exifdatum& operator=(const Rational& value);
120  Exifdatum& operator=(const std::string& value);
125  Exifdatum& operator=(const Value& value);
126  void setValue(const Value* pValue);
134  int setValue(const std::string& value);
148  int setDataArea(const byte* buf, long len);
150 
152 
153  std::string key() const;
155  const char* familyName() const;
156  std::string groupName() const;
157  std::string tagName() const;
158  std::string tagLabel() const;
159  uint16_t tag() const;
161  int ifdId() const;
163  const char* ifdName() const;
165  int idx() const;
177  long copy(byte* buf, ByteOrder byteOrder) const;
178  std::ostream& write(std::ostream& os, const ExifData* pMetadata =0) const;
180  TypeId typeId() const;
182  const char* typeName() const;
184  long typeSize() const;
186  long count() const;
188  long size() const;
190  std::string toString() const;
191  std::string toString(long n) const;
192  long toLong(long n =0) const;
193  float toFloat(long n =0) const;
194  Rational toRational(long n =0) const;
195  Value::AutoPtr getValue() const;
196  const Value& value() const;
198  long sizeDataArea() const;
211  DataBuf dataArea() const;
213 
214  private:
215  // DATA
216  ExifKey::AutoPtr key_;
217  Value::AutoPtr value_;
218 
219  }; // class Exifdatum
220 
232  class EXIV2API ExifThumbC {
233  public:
235 
236  explicit ExifThumbC(const ExifData& exifData);
239 
241 
242 
246  DataBuf copy() const;
257  long writeFile(const std::string& path) const;
258 #ifdef EXV_UNICODE_PATH
259 
263  long writeFile(const std::wstring& wpath) const;
264 #endif
265 
269  const char* mimeType() const;
274  const char* extension() const;
275 #ifdef EXV_UNICODE_PATH
276 
280  const wchar_t* wextension() const;
281 #endif
282 
283 
284  private:
285  // DATA
286  const ExifData& exifData_;
287 
288  }; // class ExifThumb
289 
301  class EXIV2API ExifThumb : public ExifThumbC {
302  public:
304 
305  explicit ExifThumb(ExifData& exifData);
308 
310 
311 
328  void setJpegThumbnail(
329  const std::string& path,
330  URational xres,
331  URational yres,
332  uint16_t unit
333  );
334 #ifdef EXV_UNICODE_PATH
335 
340  void setJpegThumbnail(
341  const std::wstring& wpath,
342  URational xres,
343  URational yres,
344  uint16_t unit
345  );
346 #endif
347 
364  void setJpegThumbnail(
365  const byte* buf,
366  long size,
367  URational xres,
368  URational yres,
369  uint16_t unit
370  );
384  void setJpegThumbnail(const std::string& path);
385 #ifdef EXV_UNICODE_PATH
386 
391  void setJpegThumbnail(const std::wstring& wpath);
392 #endif
393 
405  void setJpegThumbnail(const byte* buf, long size);
410  void erase();
412 
413  private:
414  // DATA
415  ExifData& exifData_;
416 
417  }; // class ExifThumb
418 
420  typedef std::list<Exifdatum> ExifMetadata;
421 
434  class EXIV2API ExifData {
435  public:
437  typedef ExifMetadata::iterator iterator;
439  typedef ExifMetadata::const_iterator const_iterator;
440 
442 
443 
451  Exifdatum& operator[](const std::string& key);
458  void add(const ExifKey& key, const Value* pValue);
466  void add(const Exifdatum& exifdatum);
473  iterator erase(iterator pos);
479  iterator erase(iterator beg, iterator end);
484  void clear();
486  void sortByKey();
488  void sortByTag();
490  iterator begin() { return exifMetadata_.begin(); }
492  iterator end() { return exifMetadata_.end(); }
497  iterator findKey(const ExifKey& key);
499 
501 
502  const_iterator begin() const { return exifMetadata_.begin(); }
505  const_iterator end() const { return exifMetadata_.end(); }
510  const_iterator findKey(const ExifKey& key) const;
512  bool empty() const { return count() == 0; }
514  long count() const { return static_cast<long>(exifMetadata_.size()); }
516 
517  private:
518  // DATA
519  ExifMetadata exifMetadata_;
520 
521  }; // class ExifData
522 
529  class EXIV2API ExifParser {
530  public:
544  static ByteOrder decode(
545  ExifData& exifData,
546  const byte* pData,
547  uint32_t size
548  );
587  static WriteMethod encode(
588  Blob& blob,
589  const byte* pData,
590  uint32_t size,
591  ByteOrder byteOrder,
592  const ExifData& exifData
593  );
614  static void encode(
615  Blob& blob,
616  ByteOrder byteOrder,
617  const ExifData& exifData
618  )
619  {
620  encode(blob, 0, 0, byteOrder, exifData);
621  }
622 
623  }; // class ExifParser
624 
625 } // namespace Exiv2
626 
627 #endif // #ifndef EXIF_HPP_
Exiv2::MemIo
Provides binary IO on blocks of memory by implementing the BasicIo interface. A copy-on-write impleme...
Definition: basicio.hpp:540
Exiv2::ExifData::clear
void clear()
Delete all Exifdatum instances resulting in an empty container. Note that this also removes thumbnail...
Definition: exif.cpp:587
Exiv2::ExifThumbC::copy
DataBuf copy() const
Return the thumbnail image in a DataBuf. The caller owns the data buffer and DataBuf ensures that it ...
Definition: exif.cpp:430
Exiv2::Exifdatum::typeName
const char * typeName() const
Return the name of the type.
Definition: exif.cpp:365
Exiv2::DataBuf::pData_
byte * pData_
Pointer to the buffer, 0 if none has been allocated.
Definition: types.hpp:269
Exiv2::Exifdatum::operator=
Exifdatum & operator=(const Exifdatum &rhs)
Assignment operator.
Definition: exif.cpp:234
Exiv2::ExifThumbC
Access to a Exif thumbnail image. This class provides higher level accessors to the thumbnail image t...
Definition: exif.hpp:232
Exiv2::ExifThumb::ExifThumb
ExifThumb(ExifData &exifData)
Constructor.
Definition: exif.cpp:482
Exiv2::Exifdatum::typeSize
long typeSize() const
Return the size in bytes of one component of this type.
Definition: exif.cpp:370
Exiv2::Exifdatum::toString
std::string toString() const
Return the value as a string.
Definition: exif.cpp:385
exif.hpp
Encoding and decoding of Exif data.
Exiv2::ExifData::end
const_iterator end() const
End of the metadata.
Definition: exif.hpp:505
Exiv2::ExifData::findKey
iterator findKey(const ExifKey &key)
Find the first Exifdatum with the given key, return an iterator to it.
Definition: exif.cpp:581
Exiv2::Value
Common interface for all types of values used with metadata.
Definition: value.hpp:60
metadatum.hpp
Provides abstract base classes Metadatum and Key.
Exiv2::ExifData::add
void add(const ExifKey &key, const Value *pValue)
Add an Exifdatum from the supplied key and value pair. This method copies (clones) key and value....
Definition: exif.cpp:564
Exiv2::Exifdatum::toFloat
float toFloat(long n=0) const
Return the n-th component of the value converted to float. The return value is -1 if the value is not...
Definition: exif.cpp:400
Exiv2::Exifdatum::Exifdatum
Exifdatum(const ExifKey &key, const Value *pValue=0)
Constructor for new tags created by an application. The Exifdatum is created from a key / value pair....
Definition: exif.cpp:202
Exiv2::Exifdatum::idx
int idx() const
Return the index (unique id of this key within the original IFD)
Definition: exif.cpp:350
Exiv2::Exifdatum
An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate these.
Definition: exif.hpp:59
Exiv2::Exifdatum::typeId
TypeId typeId() const
Return the type id of the value.
Definition: exif.cpp:360
Exiv2::Internal::IfdId
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags_int.hpp:54
Exiv2::ExifData::begin
iterator begin()
Begin of the metadata.
Definition: exif.hpp:490
types.hpp
Type definitions for Exiv2 and related functionality.
Exiv2::ExifData::const_iterator
ExifMetadata::const_iterator const_iterator
ExifMetadata const iterator type.
Definition: exif.hpp:439
Exiv2::IptcData::empty
bool empty() const
Return true if there is no IPTC metadata.
Definition: iptc.hpp:258
Exiv2::Internal::TiffHeader
Standard TIFF header structure.
Definition: tiffimage_int.hpp:149
Exiv2::Exifdatum::write
std::ostream & write(std::ostream &os, const ExifData *pMetadata=0) const
Write the interpreted value to an output stream, return the stream.
Definition: exif.cpp:219
Exiv2::Exifdatum::tagLabel
std::string tagLabel() const
Return a label for the tag.
Definition: exif.cpp:330
Exiv2::ExifData::sortByKey
void sortByKey()
Sort metadata by key.
Definition: exif.cpp:592
Exiv2::Exifdatum::tagName
std::string tagName() const
Return the name of the tag (which is also the third part of the key)
Definition: exif.cpp:325
Exiv2::ExifData::erase
iterator erase(iterator pos)
Delete the Exifdatum at iterator position pos, return the position of the next exifdatum....
Definition: exif.cpp:607
Exiv2::Value::create
static AutoPtr create(TypeId typeId)
A (simple) factory to create a Value type.
Definition: value.cpp:100
Exiv2::Exifdatum::sizeDataArea
long sizeDataArea() const
Return the size of the data area.
Definition: exif.cpp:415
Exiv2::writeFile
EXIV2API long writeFile(const DataBuf &buf, const std::string &path)
Write DataBuf buf to file path.
Definition: basicio.cpp:2702
Exiv2::Exifdatum::groupName
std::string groupName() const
Return the name of the metadata group (which is also the second part of the key)
Definition: exif.cpp:320
Exiv2::Internal::FindExifdatum
Unary predicate that matches an Exifdatum with a given IfdId.
Definition: tiffimage_int.hpp:476
EXV_COUNTOF
#define EXV_COUNTOF(a)
Macro to determine the size of an array.
Definition: types.hpp:517
Exiv2::Exifdatum::setDataArea
int setDataArea(const byte *buf, long len)
Set the data area by copying (cloning) the buffer pointed to by buf.
Definition: exif.cpp:305
Exiv2::TiffParser::decode
static ByteOrder decode(ExifData &exifData, IptcData &iptcData, XmpData &xmpData, const byte *pData, uint32_t size)
Decode metadata from a buffer pData of length size with data in TIFF format to the provided metadata ...
Definition: tiffimage.cpp:251
Exiv2::Exifdatum::ifdId
int ifdId() const
Return the IFD id as an integer. (Do not use, this is meant for library internal use....
Definition: exif.cpp:340
Exiv2::ExifData::end
iterator end()
End of the metadata.
Definition: exif.hpp:492
Exiv2::readFile
EXIV2API DataBuf readFile(const std::string &path)
Read file path into a DataBuf, which is returned.
Definition: basicio.cpp:2664
Exiv2::Internal::TiffMapping::findEncoder
static EncoderFct findEncoder(const std::string &make, uint32_t extendedTag, IfdId group)
Find special encoder function for a key.
Definition: tiffimage_int.cpp:1534
Exiv2::Internal::groupName
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2155
Exiv2::ExifThumb::setJpegThumbnail
void setJpegThumbnail(const std::string &path, URational xres, URational yres, uint16_t unit)
Set the Exif thumbnail to the JPEG image path. Set XResolution, YResolution and ResolutionUnit to xre...
Definition: exif.cpp:487
Exiv2::ExifParser::encode
static WriteMethod encode(Blob &blob, const byte *pData, uint32_t size, ByteOrder byteOrder, const ExifData &exifData)
Encode Exif metadata from the provided metadata to binary Exif format.
Definition: exif.cpp:644
Exiv2::ExifData::sortByTag
void sortByTag()
Sort metadata by tag.
Definition: exif.cpp:597
Exiv2::Value::clone
AutoPtr clone() const
Return an auto-pointer to a copy of itself (deep copy). The caller owns this copy and the auto-pointe...
Definition: value.hpp:119
Exiv2::Exifdatum::count
long count() const
Return the number of components in the value.
Definition: exif.cpp:375
Exiv2::PrintFct
std::ostream &(* PrintFct)(std::ostream &, const Value &, const ExifData *pExifData)
Type for a function pointer for functions interpreting the tag value.
Definition: tags.hpp:57
Exiv2::Exifdatum::copy
long copy(byte *buf, ByteOrder byteOrder) const
Write value to a data buffer and return the number of bytes written.
Definition: exif.cpp:355
Exiv2::ExifThumbC::extension
const char * extension() const
Return the file extension for the format of the thumbnail (".tif" or ".jpg").
Definition: exif.cpp:466
Exiv2::Exifdatum::value
const Value & value() const
Return a constant reference to the value.
Definition: exif.cpp:228
Exiv2::invalidTypeId
@ invalidTypeId
Invalid type id.
Definition: types.hpp:157
tiffimage_int.hpp
Internal class TiffParserWorker to parse TIFF data.
Exiv2::append
EXIV2API void append(Exiv2::Blob &blob, const byte *buf, uint32_t len)
Append len bytes pointed to by buf to blob.
Definition: image.cpp:984
Exiv2::Exifdatum::setValue
friend Exifdatum & setValue(Exifdatum &, const T &)
Set the value of exifDatum to value. If the object already has a value, it is replaced....
Definition: exif.cpp:193
Exiv2::Exifdatum::toLong
long toLong(long n=0) const
Return the n-th component of the value converted to long. The return value is -1 if the value is not ...
Definition: exif.cpp:395
Exiv2::ExifParser::encode
static void encode(Blob &blob, ByteOrder byteOrder, const ExifData &exifData)
Encode metadata from the provided metadata to Exif format.
Definition: exif.hpp:614
Exiv2::DataBuf
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition: types.hpp:204
Exiv2::Internal::printValue
std::ostream & printValue(std::ostream &os, const Value &value, const ExifData *)
Default print function, using the Value output operator.
Definition: tags_int.cpp:2162
Exiv2::ExifKey
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition: tags.hpp:148
Exiv2::DataBuf::size_
long size_
The current size of the buffer.
Definition: types.hpp:271
Exiv2::cmpMetadataByKey
EXIV2API 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.
Definition: metadatum.cpp:84
Exiv2::Internal::ifdName
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2148
Exiv2::ExifKey::AutoPtr
std::auto_ptr< ExifKey > AutoPtr
Shortcut for an ExifKey auto pointer.
Definition: tags.hpp:151
Exiv2::Exifdatum::familyName
const char * familyName() const
Return the name of the metadata family (which is also the first part of the key)
Definition: exif.cpp:315
Exiv2::Metadatum
Abstract base class defining the interface to access information related to one metadata tag.
Definition: metadatum.hpp:126
Exiv2::ExifData::count
long count() const
Get the number of metadata entries.
Definition: exif.hpp:514
Exiv2::Exifdatum::~Exifdatum
virtual ~Exifdatum()
Destructor.
Definition: exif.cpp:208
Exiv2
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Exiv2::ExifKey::key
virtual std::string key() const
Return the key of the metadatum as a string. The key is of the form 'familyName.groupName....
Definition: tags.cpp:375
Exiv2::XmpData
A container for XMP data. This is a top-level class of the Exiv2 library.
Definition: xmp_exiv2.hpp:173
Exiv2::Rational
std::pair< int32_t, int32_t > Rational
8 byte signed rational type.
Definition: types.hpp:110
Exiv2::XmpData::empty
bool empty() const
Return true if there is no XMP metadata.
Definition: xmp.cpp:365
value.hpp
Value interface and concrete subclasses.
Exiv2::TypeId
TypeId
Exiv2 value type identifiers.
Definition: types.hpp:130
Exiv2::Exifdatum::size
long size() const
Return the size of the value in bytes.
Definition: exif.cpp:380
Exiv2::Exifdatum::key
std::string key() const
Return the key of the Exifdatum.
Definition: exif.cpp:310
Exiv2::getValue
T getValue(const byte *buf, ByteOrder byteOrder)
Read a value of type T from the data buffer.
Definition: value.hpp:1372
Exiv2::ExifThumbC::writeFile
long writeFile(const std::string &path) const
Write the thumbnail image to a file.
Definition: exif.cpp:437
Exiv2::ExifParser::decode
static ByteOrder decode(ExifData &exifData, const byte *pData, uint32_t size)
Decode metadata from a buffer pData of length size with binary Exif data to the provided metadata con...
Definition: exif.cpp:612
Exiv2::TypeInfo::typeName
static const char * typeName(TypeId typeId)
Return the name of the type, 0 if unknown.
Definition: types.cpp:107
Exiv2::TiffParser::encode
static WriteMethod encode(BasicIo &io, const byte *pData, uint32_t size, ByteOrder byteOrder, const ExifData &exifData, const IptcData &iptcData, const XmpData &xmpData)
Encode metadata from the provided metadata to TIFF format.
Definition: tiffimage.cpp:268
Exiv2::TagInfo
Tag information.
Definition: tags.hpp:82
EXV_WARNING
#define EXV_WARNING
Shorthand for a temp warning log message object and return its ostringstream.
Definition: error.hpp:148
Exiv2::Internal::TiffParserWorker::encode
static WriteMethod encode(BasicIo &io, const byte *pData, uint32_t size, const ExifData &exifData, const IptcData &iptcData, const XmpData &xmpData, uint32_t root, FindEncoderFct findEncoderFct, TiffHeaderBase *pHeader, OffsetWriter *pOffsetWriter)
Encode TIFF metadata from the metadata containers into a memory block blob.
Definition: tiffimage_int.cpp:1627
Exiv2::ExifThumbC::mimeType
const char * mimeType() const
Return the MIME type of the thumbnail, either "image/tiff" or "image/jpeg".
Definition: exif.cpp:459
Exiv2::ByteOrder
ByteOrder
Type to express the byte order (little or big endian)
Definition: types.hpp:113
Exiv2::ExifData::empty
bool empty() const
Return true if there is no Exif metadata.
Definition: exif.hpp:512
Exiv2::Exifdatum::ifdName
const char * ifdName() const
Return the name of the IFD.
Definition: exif.cpp:345
Exiv2::Internal::Tag::root
const uint32_t root
Special tag: root IFD.
Definition: tiffcomposite_int.hpp:80
Exiv2::cmpMetadataByTag
EXIV2API 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.
Definition: metadatum.cpp:78
Exiv2::ExifThumb::erase
void erase()
Delete the thumbnail from the Exif data. Removes all Exif.Thumbnail.*, i.e., Exif IFD1 tags.
Definition: exif.cpp:548
Exiv2::Exifdatum::tag
uint16_t tag() const
Return the tag.
Definition: exif.cpp:335
Exiv2::TagInfo::printFct_
PrintFct printFct_
Pointer to tag print function.
Definition: tags.hpp:103
Exiv2::Metadatum::operator=
Metadatum & operator=(const Metadatum &rhs)
Assignment operator. Protected so that it can only be used by subclasses but not directly.
Definition: metadatum.cpp:66
Exiv2::Internal::tagInfo
const TagInfo * tagInfo(uint16_t tag, IfdId ifdId)
Return the tag info for tag and ifdId.
Definition: tags_int.cpp:2115
tags_int.hpp
Internal Exif tag and type information.
Exiv2::URational
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition: types.hpp:108
Exiv2::Error
BasicError< char > Error
Error class used for exceptions (std::string based)
Definition: error.hpp:323
Exiv2::MemIo::mmap
virtual byte * mmap(bool=false)
Allow direct access to the underlying data buffer. The buffer is not protected against write access i...
Definition: basicio.cpp:1339
Exiv2::ExifData::operator[]
Exifdatum & operator[](const std::string &key)
Returns a reference to the Exifdatum that is associated with a particular key. If ExifData does not a...
Definition: exif.cpp:553
Exiv2::IptcData
A container for IPTC data. This is a top-level class of the Exiv2 library.
Definition: iptc.hpp:173
Exiv2::ExifThumbC::ExifThumbC
ExifThumbC(const ExifData &exifData)
Constructor.
Definition: exif.cpp:425
tags.hpp
Exif tag and type information.
Exiv2::string
@ string
IPTC string type.
Definition: types.hpp:147
Exiv2::setValue
Exiv2::Exifdatum & setValue(Exiv2::Exifdatum &exifDatum, const T &value)
Set the value of exifDatum to value. If the object already has a value, it is replaced....
Definition: exif.cpp:193
Exiv2::MemIo::size
virtual size_t size() const
Get the current memory buffer size in bytes.
Definition: basicio.cpp:1354
Exiv2::toString
std::string toString(const T &arg)
Utility function to convert the argument of any type to a string.
Definition: types.hpp:521
Exiv2::ExifData::iterator
ExifMetadata::iterator iterator
ExifMetadata iterator type.
Definition: exif.hpp:437
Exiv2::ValueType
Template for a Value of a basic type. This is used for unsigned and signed short, long and rationals.
Definition: value.hpp:1244
Exiv2::Exifdatum::dataArea
DataBuf dataArea() const
Return a copy of the data area of the value. The caller owns this copy and DataBuf ensures that it wi...
Definition: exif.cpp:420
Exiv2::WriteMethod
WriteMethod
Type to indicate write method used by TIFF parsers.
Definition: types.hpp:116
Exiv2::ExifParser
Stateless parser class for Exif data. Images use this class to decode and encode binary Exif data.
Definition: exif.hpp:529
Exiv2::Internal::groupId
IfdId groupId(const std::string &groupName)
Return the group id for a group name.
Definition: tags_int.cpp:2140
Exiv2::ExifThumb
Access and modify an Exif thumbnail image. This class implements manipulators to set and erase the th...
Definition: exif.hpp:301
Exiv2::ExifMetadata
std::list< Exifdatum > ExifMetadata
Container type to hold all metadata.
Definition: exif.hpp:420
Exiv2::TypeInfo::typeSize
static long typeSize(TypeId typeId)
Return the size in bytes of one element of this type.
Definition: types.cpp:121
Exiv2::Value::AutoPtr
std::auto_ptr< Value > AutoPtr
Shortcut for a Value auto pointer.
Definition: value.hpp:63
Exiv2::MemIo::read
virtual DataBuf read(long rcount)
Read data from the memory block. Reading starts at the current IO position and the position is advanc...
Definition: basicio.cpp:1376
error.hpp
Error class for exceptions, log message class.
tiffcomposite_int.hpp
Internal classes used in a TIFF composite structure.
Exiv2::Blob
std::vector< byte > Blob
Container for binary data.
Definition: types.hpp:162
Exiv2::Exifdatum::toRational
Rational toRational(long n=0) const
Return the n-th component of the value converted to Rational. The return value is -1/1 if the value i...
Definition: exif.cpp:405
Exiv2::ExifData
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434
Exiv2::Exifdatum::getValue
Value::AutoPtr getValue() const
Return an auto-pointer to a copy (clone) of the value. The caller owns this copy and the auto-poiner ...
Definition: exif.cpp:410