27 #include "exiv2lib_export.h" 30 #include "basicio.hpp" 33 #include "xmp_exiv2.hpp" 67 typedef enum { kpsNone, kpsBasic, kpsXMP, kpsRecursive
68 , kpsIccProfile , kpsIptcErase
94 uint16_t supportedMetadata,
109 virtual void printStructure(std::ostream& out,
PrintStructureOption option =kpsNone,
int depth=0);
123 virtual void readMetadata() =0;
136 virtual void writeMetadata() =0;
142 virtual void setExifData(
const ExifData& exifData);
147 virtual void clearExifData();
153 virtual void setIptcData(
const IptcData& iptcData);
158 virtual void clearIptcData();
170 virtual void setXmpPacket(
const std::string& xmpPacket);
183 virtual void clearXmpPacket();
196 virtual void setXmpData(
const XmpData& xmpData);
210 virtual void clearXmpData();
221 virtual void clearComment();
228 virtual void setIccProfile(
DataBuf& iccProfile,
bool bTestValid=
true);
233 virtual void clearIccProfile();
250 virtual void setMetadata(
const Image& image);
255 virtual void clearMetadata();
310 void writeXmpFromPacket(
bool flag);
337 bool isBigEndianPlatform();
342 bool isLittleEndianPlatform();
344 bool isStringType(uint16_t type);
345 bool isShortType(uint16_t type);
346 bool isLongType(uint16_t type);
347 bool isLongLongType(uint16_t type);
348 bool isRationalType(uint16_t type);
349 bool is2ByteType(uint16_t type);
350 bool is4ByteType(uint16_t type);
351 bool is8ByteType(uint16_t type);
355 uint64_t byteSwap(uint64_t value,
bool bSwap)
const;
356 uint32_t byteSwap(uint32_t value,
bool bSwap)
const;
357 uint16_t byteSwap(uint16_t value,
bool bSwap)
const;
358 uint16_t byteSwap2(
const DataBuf& buf,
size_t offset,
bool bSwap)
const;
359 uint32_t byteSwap4(
const DataBuf& buf,
size_t offset,
bool bSwap)
const;
360 uint64_t byteSwap8(
const DataBuf& buf,
size_t offset,
bool bSwap)
const;
391 virtual int pixelWidth()
const;
395 virtual int pixelHeight()
const;
407 virtual const ExifData& exifData()
const;
419 virtual const IptcData& iptcData()
const;
431 virtual const XmpData& xmpData()
const;
466 bool supportsMetadata(
MetadataId metadataId)
const;
468 bool writeXmpFromPacket()
const;
476 uint16_t supportedMetadata
478 imageType_ = imageType;
479 supportedMetadata_ = supportedMetadata;
502 const char* typeName(uint16_t tag)
const;
515 uint16_t supportedMetadata_;
516 bool writeXmpFromPacket_;
519 std::map<int,std::string> tags_;
552 #ifdef EXV_UNICODE_PATH 557 static BasicIo::AutoPtr createIo(
const std::wstring& wpath,
bool useCurl =
true);
573 #ifdef EXV_UNICODE_PATH 578 static Image::AutoPtr open(
const std::wstring& wpath,
bool useCurl =
true);
620 #ifdef EXV_UNICODE_PATH 625 static Image::AutoPtr create(
int type,
const std::wstring& wpath);
658 #ifdef EXV_UNICODE_PATH 663 static int getType(
const std::wstring& wpath);
710 static bool checkType(
int type,
BasicIo& io,
bool advance);
731 #endif // #ifndef IMAGE_HPP_ std::string filter_
Filter.
Definition: image.hpp:57
An interface for simple binary IO.
Definition: basicio.hpp:55
BasicIo::AutoPtr io_
Image data IO pointer.
Definition: image.hpp:487
A container for XMP data. This is a top-level class of the Exiv2 library.
Definition: xmp_exiv2.hpp:173
std::string comment_
User comment.
Definition: image.hpp:492
std::auto_ptr< Image > AutoPtr
Image auto_ptr type.
Definition: image.hpp:84
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434
Returns an Image instance of the specified type.
Definition: image.hpp:534
Image::AutoPtr(* NewInstanceFct)(BasicIo::AutoPtr io, bool create)
Type for function pointer that creates new Image instances.
Definition: image.hpp:525
ByteOrder
Type to express the byte order (little or big endian)
Definition: types.hpp:113
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition: types.hpp:204
uint32_t width_
Width.
Definition: image.hpp:55
virtual bool iccProfileDefined()
Erase iccProfile. the profile is not removed from the actual image until the writeMetadata() method i...
Definition: image.hpp:238
std::string xmpPacket_
XMP packet.
Definition: image.hpp:493
bool good() const
Check if the Image instance is valid. Use after object construction.
Definition: image.cpp:738
uint8_t byte
1 byte unsigned integer type.
Definition: types.hpp:105
Abstract base class defining the interface for an image. This is the top-level interface to the Exiv2...
Definition: image.hpp:81
MetadataId
An identifier for each type of metadata.
Definition: types.hpp:119
PrintStructureOption
Options for printStructure.
Definition: image.hpp:67
A container for IPTC data. This is a top-level class of the Exiv2 library.
Definition: iptc.hpp:173
int pixelWidth_
image pixel width
Definition: image.hpp:494
DataBuf iccProfile_
ICC buffer (binary data)
Definition: image.hpp:491
uint32_t size_
Size.
Definition: image.hpp:54
virtual DataBuf * iccProfile()
return iccProfile
Definition: image.hpp:243
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
TypeId getType()
Template to determine the TypeId for a type T.
std::auto_ptr< BasicIo > AutoPtr
BasicIo auto_ptr type.
Definition: basicio.hpp:58
int imageType() const
set type support for this image format
Definition: image.hpp:483
long position_
Position.
Definition: image.hpp:53
NativePreviewList nativePreviews_
list of native previews
Definition: image.hpp:496
AccessMode
An identifier for each mode of metadata support.
Definition: types.hpp:122
std::vector< byte > Blob
Container for binary data.
Definition: types.hpp:162
Encoding and decoding of IPTC data.
void setTypeSupported(int imageType, uint16_t supportedMetadata)
set type support for this image format
Definition: image.hpp:474
XmpData xmpData_
XMP data container.
Definition: image.hpp:490
uint32_t height_
Height.
Definition: image.hpp:56
IPTC string type.
Definition: types.hpp:147
IptcData iptcData_
IPTC data container.
Definition: image.hpp:489
ExifData exifData_
Exif data container.
Definition: image.hpp:488
int pixelHeight_
image pixel height
Definition: image.hpp:495
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Native preview information. This is meant to be used only by the PreviewManager.
Definition: image.hpp:52
Exiv2 type for the Exif user comment.
Definition: types.hpp:150
bool(* IsThisTypeFct)(BasicIo &iIo, bool advance)
Type for function pointer that checks image types.
Definition: image.hpp:527
std::vector< NativePreview > NativePreviewList
List of native previews. This is meant to be used only by the PreviewManager.
Definition: image.hpp:62
Encoding and decoding of Exif data.
std::string mimeType_
MIME type.
Definition: image.hpp:58
const int none
Not an image.
Definition: image.hpp:48