14#include "exiv2lib_export.h"
17#include "metadatum.hpp"
74 Exifdatum& operator=(
const uint16_t& value);
79 Exifdatum& operator=(
const uint32_t& value);
89 Exifdatum& operator=(
const int16_t& value);
94 Exifdatum& operator=(
const int32_t& value);
104 Exifdatum& operator=(
const std::string& value);
118 int setValue(
const std::string& value)
override;
132 int setDataArea(
const byte* buf,
size_t len)
const;
138 [[nodiscard]] std::string key()
const override;
139 [[nodiscard]]
const char* familyName()
const override;
140 [[nodiscard]] std::string
groupName()
const override;
141 [[nodiscard]] std::string tagName()
const override;
142 [[nodiscard]] std::string tagLabel()
const override;
143 [[nodiscard]] std::string tagDesc()
const override;
144 [[nodiscard]] uint16_t tag()
const override;
146 [[nodiscard]]
IfdId ifdId()
const;
148 [[nodiscard]]
const char*
ifdName()
const;
150 [[nodiscard]]
int idx()
const;
162 size_t copy(
byte* buf,
ByteOrder byteOrder)
const override;
163 std::ostream& write(std::ostream& os,
const ExifData* pMetadata =
nullptr)
const override;
165 [[nodiscard]]
TypeId typeId()
const override;
167 [[nodiscard]]
const char* typeName()
const override;
169 [[nodiscard]]
size_t typeSize()
const override;
171 [[nodiscard]]
size_t count()
const override;
173 [[nodiscard]]
size_t size()
const override;
175 [[nodiscard]] std::string
toString()
const override;
176 [[nodiscard]] std::string
toString(
size_t n)
const override;
177 [[nodiscard]] int64_t toInt64(
size_t n = 0)
const override;
178 [[nodiscard]]
float toFloat(
size_t n = 0)
const override;
179 [[nodiscard]]
Rational toRational(
size_t n = 0)
const override;
181 [[nodiscard]]
const Value& value()
const override;
183 [[nodiscard]]
size_t sizeDataArea()
const;
196 [[nodiscard]]
DataBuf dataArea()
const;
231 [[nodiscard]]
DataBuf copy()
const;
242 [[nodiscard]]
size_t writeFile(
const std::string& path)
const;
247 [[nodiscard]]
const char*
mimeType()
const;
252 [[nodiscard]]
const char* extension()
const;
299 void setJpegThumbnail(
const std::string& path,
URational xres,
URational yres, uint16_t unit);
317 void setJpegThumbnail(
const byte* buf,
size_t size,
URational xres,
URational yres, uint16_t unit);
331 void setJpegThumbnail(
const std::string& path);
344 void setJpegThumbnail(
const byte* buf,
size_t size);
390 Exifdatum& operator[](
const std::string& key);
430 return exifMetadata_.begin();
434 return exifMetadata_.end();
440 iterator findKey(
const ExifKey& key);
447 return exifMetadata_.begin();
451 return exifMetadata_.end();
457 [[nodiscard]] const_iterator findKey(
const ExifKey& key)
const;
460 return exifMetadata_.empty();
463 [[nodiscard]]
size_t count()
const {
464 return exifMetadata_.size();
555 encode(blob,
nullptr, 0, byteOrder, exifData);
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:373
bool empty() const
Return true if there is no Exif metadata.
Definition: exif.hpp:459
size_t count() const
Get the number of metadata entries.
Definition: exif.hpp:463
ExifMetadata::iterator iterator
ExifMetadata iterator type.
Definition: exif.hpp:376
iterator begin()
Begin of the metadata.
Definition: exif.hpp:429
const_iterator end() const
End of the metadata.
Definition: exif.hpp:450
iterator end()
End of the metadata.
Definition: exif.hpp:433
ExifMetadata::const_iterator const_iterator
ExifMetadata const iterator type.
Definition: exif.hpp:378
const_iterator begin() const
Begin of the metadata.
Definition: exif.hpp:446
Concrete keys for Exif metadata and access to Exif tag reference data.
Definition: tags.hpp:271
std::unique_ptr< ExifKey > UniquePtr
Shortcut for an ExifKey auto pointer.
Definition: tags.hpp:274
Stateless parser class for Exif data. Images use this class to decode and encode binary Exif data.
Definition: exif.hpp:479
static void encode(Blob &blob, ByteOrder byteOrder, ExifData &exifData)
Encode metadata from the provided metadata to Exif format.
Definition: exif.hpp:554
Access to a Exif thumbnail image. This class provides higher level accessors to the thumbnail image t...
Definition: exif.hpp:217
Access and modify an Exif thumbnail image. This class implements manipulators to set and erase the th...
Definition: exif.hpp:272
An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate these.
Definition: exif.hpp:41
~Exifdatum() override=default
Destructor.
Common interface for all types of values used with metadata.
Definition: value.hpp:33
std::unique_ptr< Value > UniquePtr
Shortcut for a Value auto pointer.
Definition: value.hpp:36
const char * groupName(IfdId ifdId)
Return the group name for a group id.
Definition: tags_int.cpp:2406
const char * ifdName(IfdId ifdId)
Return the name of the IFD.
Definition: tags_int.cpp:2400
Class CrwImage to access Canon CRW images. References: The Canon RAW (CRW) File Format by Phil Harv...
Definition: asfvideo.hpp:15
std::pair< int32_t, int32_t > Rational
8 byte signed rational type.
Definition: types.hpp:31
EXIV2API size_t writeFile(const DataBuf &buf, const std::string &path)
Write DataBuf buf to file path.
Definition: basicio.cpp:1746
IfdId
Type to specify the IFD to which a metadata belongs.
Definition: tags.hpp:34
T getValue(const byte *buf, ByteOrder byteOrder)
Read a value of type T from the data buffer.
std::pair< uint32_t, uint32_t > URational
8 byte unsigned rational type.
Definition: types.hpp:29
TypeId
Exiv2 value type identifiers.
Definition: types.hpp:70
ByteOrder
Type to express the byte order (little or big endian)
Definition: types.hpp:34
WriteMethod
Type to indicate write method used by TIFF parsers.
Definition: types.hpp:41
std::list< Exifdatum > ExifMetadata
Container type to hold all metadata.
Definition: exif.hpp:359
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:147
std::string toString(const T &arg)
Utility function to convert the argument of any type to a string.
Definition: types.hpp:456
std::vector< byte > Blob
Container for binary data.
Definition: types.hpp:102
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition: types.hpp:124
List of TIFF compression to MIME type mappings.
Definition: tiffimage.cpp:47