Exiv2
Loading...
Searching...
No Matches
Public Types | List of all members
Exiv2::IptcData Class Reference

A container for IPTC data. This is a top-level class of the Exiv2 library. More...

#include <iptc.hpp>

Public Types

using iterator = IptcMetadata::iterator
 IptcMetadata iterator type.
 
using const_iterator = IptcMetadata::const_iterator
 IptcMetadata const iterator type.
 

Public Member Functions

Manipulators
Iptcdatumoperator[] (const std::string &key)
 Returns a reference to the Iptcdatum that is associated with a particular key. If IptcData does not already contain such an Iptcdatum, operator[] adds object Iptcdatum(key).
 
int add (const IptcKey &key, const Value *value)
 Add an Iptcdatum from the supplied key and value pair. This method copies (clones) the value. A check for non-repeatable datasets is performed.
 
int add (const Iptcdatum &iptcdatum)
 Add a copy of the Iptcdatum to the IPTC metadata. A check for non-repeatable datasets is performed.
 
iterator erase (iterator pos)
 Delete the Iptcdatum at iterator position pos, return the position of the next Iptcdatum. Note that iterators into the metadata, including pos, are potentially invalidated by this call.
 
void clear ()
 Delete all Iptcdatum instances resulting in an empty container.
 
void sortByKey ()
 Sort metadata by key.
 
void sortByTag ()
 Sort metadata by tag (aka dataset)
 
iterator begin ()
 Begin of the metadata.
 
iterator end ()
 End of the metadata.
 
iterator findKey (const IptcKey &key)
 Find the first Iptcdatum with the given key, return an iterator to it.
 
iterator findId (uint16_t dataset, uint16_t record=IptcDataSets::application2)
 Find the first Iptcdatum with the given record and dataset it, return a const iterator to it.
 

Accessors

const_iterator begin () const
 Begin of the metadata.
 
const_iterator end () const
 End of the metadata.
 
const_iterator findKey (const IptcKey &key) const
 Find the first Iptcdatum with the given key, return a const iterator to it.
 
const_iterator findId (uint16_t dataset, uint16_t record=IptcDataSets::application2) const
 Find the first Iptcdatum with the given record and dataset number, return a const iterator to it.
 
bool empty () const
 Return true if there is no IPTC metadata.
 
size_t count () const
 Get the number of metadata entries.
 
size_t size () const
 Return the exact size of all contained IPTC metadata.
 
const char * detectCharset () const
 Return the metadata charset name or 0.
 
static void printStructure (std::ostream &out, const Slice< byte * > &bytes, size_t depth)
 dump iptc formatted binary data (used by printStructure kpsRecursive)
 

Detailed Description

A container for IPTC data. This is a top-level class of the Exiv2 library.

Provide high-level access to the IPTC data of an image:

Examples
iptceasy.cpp, and iptcprint.cpp.

Member Function Documentation

◆ add() [1/2]

int Exiv2::IptcData::add ( const Iptcdatum iptcdatum)

Add a copy of the Iptcdatum to the IPTC metadata. A check for non-repeatable datasets is performed.

Returns
0 if successful;
6 if the dataset already exists and is not repeatable;

References Exiv2::IptcDataSets::dataSetRepeatable(), end(), findId(), Exiv2::Iptcdatum::record(), and Exiv2::Iptcdatum::tag().

◆ add() [2/2]

int Exiv2::IptcData::add ( const IptcKey key,
const Value value 
)

Add an Iptcdatum from the supplied key and value pair. This method copies (clones) the value. A check for non-repeatable datasets is performed.

Returns
0 if successful;
6 if the dataset already exists and is not repeatable

References add().

Referenced by add(), and Exiv2::Converter::cnvXmpValueToIptc().

◆ operator[]()

Iptcdatum & Exiv2::IptcData::operator[] ( const std::string &  key)

Returns a reference to the Iptcdatum that is associated with a particular key. If IptcData does not already contain such an Iptcdatum, operator[] adds object Iptcdatum(key).

Note
Since operator[] might insert a new element, it can't be a const member function.

References end(), and findKey().

◆ sortByKey()

void Exiv2::IptcData::sortByKey ( )

Sort metadata by key.

References Exiv2::cmpMetadataByKey().

◆ sortByTag()

void Exiv2::IptcData::sortByTag ( )

Sort metadata by tag (aka dataset)

References Exiv2::cmpMetadataByTag().


The documentation for this class was generated from the following files: