31#include "exiv2lib_export.h"
34#include "metadatum.hpp"
154 std::string
key()
const;
159 uint16_t
tag()
const;
178 std::ostream&
write(std::ostream& os,
const ExifData* pMetadata =0)
const;
192 long toLong(
long n =0)
const;
193 float toFloat(
long n =0)
const;
257 long writeFile(
const std::string& path)
const;
258#ifdef EXV_UNICODE_PATH
263 long writeFile(
const std::wstring& wpath)
const;
275#ifdef EXV_UNICODE_PATH
280 const wchar_t* wextension()
const;
329 const std::string& path,
334#ifdef EXV_UNICODE_PATH
341 const std::wstring& wpath,
385#ifdef EXV_UNICODE_PATH
514 long count()
const {
return static_cast<long>(exifMetadata_.size()); }
620 encode(blob, 0, 0, byteOrder, exifData);
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition types.hpp:193
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition exif.hpp:434
ExifMetadata::iterator iterator
ExifMetadata iterator type.
Definition exif.hpp:437
bool empty() const
Return true if there is no Exif metadata.
Definition exif.hpp:512
iterator erase(iterator pos)
Delete the Exifdatum at iterator position pos, return the position of the next exifdatum....
Definition exif.cpp:631
void sortByTag()
Sort metadata by tag.
Definition exif.cpp:621
void clear()
Delete all Exifdatum instances resulting in an empty container. Note that this also removes thumbnail...
Definition exif.cpp:611
ExifMetadata::const_iterator const_iterator
ExifMetadata const iterator type.
Definition exif.hpp:439
long count() const
Get the number of metadata entries.
Definition exif.hpp:514
iterator begin()
Begin of the metadata.
Definition exif.hpp:490
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:577
const_iterator end() const
End of the metadata.
Definition exif.hpp:505
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:588
void sortByKey()
Sort metadata by key.
Definition exif.cpp:616
iterator end()
End of the metadata.
Definition exif.hpp:492
const_iterator begin() const
Begin of the metadata.
Definition exif.hpp:503
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition tags.hpp:140
std::auto_ptr< ExifKey > AutoPtr
Shortcut for an ExifKey auto pointer.
Definition tags.hpp:143
Stateless parser class for Exif data. Images use this class to decode and encode binary Exif data.
Definition exif.hpp:529
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:636
static void encode(Blob &blob, ByteOrder byteOrder, const ExifData &exifData)
Encode metadata from the provided metadata to Exif format.
Definition exif.hpp:614
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:668
ExifThumbC(const ExifData &exifData)
Constructor.
Definition exif.cpp:449
const char * extension() const
Return the file extension for the format of the thumbnail (".tif" or ".jpg").
Definition exif.cpp:490
DataBuf copy() const
Return the thumbnail image in a DataBuf. The caller owns the data buffer and DataBuf ensures that it ...
Definition exif.cpp:454
long writeFile(const std::string &path) const
Write the thumbnail image to a file.
Definition exif.cpp:461
const char * mimeType() const
Return the MIME type of the thumbnail, either "image/tiff" or "image/jpeg".
Definition exif.cpp:483
ExifThumb(ExifData &exifData)
Constructor.
Definition exif.cpp:506
void erase()
Delete the thumbnail from the Exif data. Removes all Exif.Thumbnail.*, i.e., Exif IFD1 tags.
Definition exif.cpp:572
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:511
An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate these.
Definition exif.hpp:59
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:434
long copy(byte *buf, ByteOrder byteOrder) const
Write value to a data buffer and return the number of bytes written.
Definition exif.cpp:379
std::string groupName() const
Return the name of the metadata group (which is also the second part of the key).
Definition exif.cpp:344
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
long count() const
Return the number of components in the value.
Definition exif.cpp:399
int ifdId() const
Return the IFD id as an integer. (Do not use, this is meant for library internal use....
Definition exif.cpp:364
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:444
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:424
long typeSize() const
Return the size in bytes of one component of this type.
Definition exif.cpp:394
std::string key() const
Return the key of the Exifdatum.
Definition exif.cpp:334
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
std::string tagName() const
Return the name of the tag (which is also the third part of the key).
Definition exif.cpp:349
std::string tagLabel() const
Return a label for the tag.
Definition exif.cpp:354
TypeId typeId() const
Return the type id of the value.
Definition exif.cpp:384
int idx() const
Return the index (unique id of this key within the original IFD).
Definition exif.cpp:374
long sizeDataArea() const
Return the size of the data area.
Definition exif.cpp:439
const char * ifdName() const
Return the name of the IFD.
Definition exif.cpp:369
long size() const
Return the size of the value in bytes.
Definition exif.cpp:404
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:429
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:419
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
int setDataArea(const byte *buf, long len)
Set the data area by copying (cloning) the buffer pointed to by buf.
Definition exif.cpp:329
uint16_t tag() const
Return the tag.
Definition exif.cpp:359
Exifdatum & operator=(const Exifdatum &rhs)
Assignment operator.
Definition exif.cpp:258
std::string toString() const
Return the value as a string.
Definition exif.cpp:409
const char * typeName() const
Return the name of the type.
Definition exif.cpp:389
const char * familyName() const
Return the name of the metadata family (which is also the first part of the key).
Definition exif.cpp:339
const Value & value() const
Return a constant reference to the value.
Definition exif.cpp:252
Common interface for all types of values used with metadata.
Definition value.hpp:51
std::auto_ptr< Value > AutoPtr
Shortcut for a Value auto pointer.
Definition value.hpp:54
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition asfvideo.hpp:36
TypeId
Exiv2 value type identifiers.
Definition types.hpp:119
std::vector< byte > Blob
Container for binary data.
Definition types.hpp:151
std::list< Exifdatum > ExifMetadata
Container type to hold all metadata.
Definition exif.hpp:420
ByteOrder
Type to express the byte order (little or big endian).
Definition types.hpp:102
std::pair< int32_t, int32_t > Rational
8 byte signed rational type.
Definition types.hpp:99
WriteMethod
Type to indicate write method used by TIFF parsers.
Definition types.hpp:105
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition types.hpp:97