| Exiv2

Loading...
Searching...
No Matches
List of all members
Exiv2::PgfImage Class Reference

Class to access PGF images. Exif and IPTC metadata are supported directly. More...

`#include <pgfimage.hpp>`

Inheritance diagram for Exiv2::PgfImage:
[legend]

## Public Member Functions
Creators
| PgfImage (BasicIo::UniquePtr io, bool create)
| Constructor that can either open an existing PGF image or create a new image from scratch. If a new image is to be created, any existing data is overwritten. Since the constructor can not return a result, callers should check the good() method after object construction to determine success or failure.
Manipulators
void | readMetadata () override
| Read all metadata supported by a specific image format from the image. Before this method is called, the image metadata will be cleared.
void | writeMetadata () override
| Write metadata back to the image.
Public Member Functions inherited from Exiv2::Image
| Image (ImageType type, uint16_t supportedMetadata, BasicIo::UniquePtr io)
| Constructor taking the image type, a bitmap of the supported metadata types and an auto-pointer that owns an IO instance. See subclass constructor doc.
virtual | ~Image ()=default
| Virtual Destructor.
ByteOrder | byteOrder () const
| Return the byte order in which the Exif metadata of the image is encoded. Initially, it is not set (invalidByteOrder).
bool | good () const
| Check if the Image instance is valid. Use after object construction.
virtual uint32_t | pixelWidth () const
| Return the pixel width of the image.
virtual uint32_t | pixelHeight () const
| Return the pixel height of the image.
virtual const ExifData & | exifData () const
| Returns an ExifData instance containing currently buffered Exif data.
virtual const IptcData & | iptcData () const
| Returns an IptcData instance containing currently buffered IPTC data.
virtual const XmpData & | xmpData () const
| Returns an XmpData instance containing currently buffered XMP data.
virtual std::string | comment () const
| Return a copy of the image comment. May be an empty string.
virtual const std::string & | xmpPacket () const
| Return the raw XMP packet as a string.
virtual BasicIo & | io () const
| Return a reference to the BasicIo instance being used for Io.
AccessMode | checkMode (MetadataId metadataId) const
| Returns the access mode, i.e., the metadata functions, which this image supports for the metadata type metadataId.
bool | supportsMetadata (MetadataId metadataId) const
| Check if image supports a particular type of metadata. This method is deprecated. Use checkMode() instead.
bool | writeXmpFromPacket () const
| Return the flag indicating the source when writing XMP metadata.
const NativePreviewList & | nativePreviews () const
| Return list of native previews. This is meant to be used only by the PreviewManager.
void | setTypeSupported (ImageType imageType, uint16_t supportedMetadata)
| set type support for this image format
ImageType | imageType () const
| set type support for this image format
| Image (const Image &)=delete
| Copy constructor.
Image & | operator= (const Image &)=delete
| Assignment operator.
virtual void | printStructure (std::ostream &out, PrintStructureOption option=kpsNone, size_t depth=0)
| Print out the structure of image file.
virtual void | setExifData (const ExifData &exifData)
| Assign new Exif data. The new Exif data is not written to the image until the writeMetadata() method is called.
virtual void | clearExifData ()
| Erase any buffered Exif data. Exif data is not removed from the actual image until the writeMetadata() method is called.
virtual void | setIptcData (const IptcData &iptcData)
| Assign new IPTC data. The new IPTC data is not written to the image until the writeMetadata() method is called.
virtual void | clearIptcData ()
| Erase any buffered IPTC data. IPTC data is not removed from the actual image until the writeMetadata() method is called.
virtual void | setXmpPacket (const std::string &xmpPacket)
| Assign a raw XMP packet. The new XMP packet is not written to the image until the writeMetadata() method is called.
virtual void | clearXmpPacket ()
| Erase the buffered XMP packet. XMP data is not removed from the actual image until the writeMetadata() method is called.
virtual void | setXmpData (const XmpData &xmpData)
| Assign new XMP data. The new XMP data is not written to the image until the writeMetadata() method is called.
virtual void | clearXmpData ()
| Erase any buffered XMP data. XMP data is not removed from the actual image until the writeMetadata() method is called.
virtual void | setComment (const std::string &comment)
| Set the image comment. The comment is written to the image when writeMetadata() is called.
virtual void | clearComment ()
| Erase any buffered comment. Comment is not removed from the actual image until the writeMetadata() method is called.
virtual void | setIccProfile (DataBuf &&iccProfile, bool bTestValid=true)
| Set the image iccProfile. The new profile is not written to the image until the writeMetadata() method is called.
void | appendIccProfile (const uint8_t *bytes, size_t size, bool bTestValid)
| Append more bytes to the iccProfile.
void | checkIccProfile ()
| Throw an exception if the size at the beginning of the iccProfile isn't correct.
virtual void | clearIccProfile ()
| Erase iccProfile. the profile is not removed from the actual image until the writeMetadata() method is called.
virtual bool | iccProfileDefined () const
| Returns the status of the ICC profile in the image instance.
virtual const DataBuf & | iccProfile () const
| return iccProfile
virtual void | setMetadata (const Image &image)
| Copy all existing metadata from source Image. The data is copied into internal buffers and is not written to the image until the writeMetadata() method is called.
virtual void | clearMetadata ()
| Erase all buffered metadata. Metadata is not removed from the actual image until the writeMetadata() method is called.
virtual ExifData & | exifData ()
| Returns an ExifData instance containing currently buffered Exif data.
virtual IptcData & | iptcData ()
| Returns an IptcData instance containing currently buffered IPTC data.
virtual XmpData & | xmpData ()
| Returns an XmpData instance containing currently buffered XMP data.
virtual std::string & | xmpPacket ()
| Return a modifiable reference to the raw XMP packet.
void | writeXmpFromPacket (bool flag)
| Determine the source when writing XMP.
void | setByteOrder (ByteOrder byteOrder)
| Set the byte order to encode the Exif metadata in.
void | printTiffStructure (BasicIo &io, std::ostream &out, PrintStructureOption option, size_t depth, size_t offset=0)
| Print out the structure of image file.
void | printIFDStructure (BasicIo &io, std::ostream &out, Exiv2::PrintStructureOption option, size_t start, bool bSwap, char c, size_t depth)
| Print out the structure of a TIFF IFD.

## Accessors
std::string | mimeType () const override
| Return the MIME type of the image.

## Additional Inherited Members
Public Types inherited from Exiv2::Image
using | UniquePtr = std::unique_ptr<Image>
| Image auto_ptr type.
static bool | isBigEndianPlatform ()
| is the host platform bigEndian
static bool | isLittleEndianPlatform ()
| is the host platform littleEndian
static bool | isStringType (uint16_t type)
static bool | isShortType (uint16_t type)
static bool | isLongType (uint16_t type)
static bool | isLongLongType (uint16_t type)
static bool | isRationalType (uint16_t type)
static bool | is2ByteType (uint16_t type)
static bool | is4ByteType (uint16_t type)
static bool | is8ByteType (uint16_t type)
static bool | isPrintXMP (uint16_t type, Exiv2::PrintStructureOption option)
static bool | isPrintICC (uint16_t type, Exiv2::PrintStructureOption option)
static uint64_t | byteSwap (uint64_t value, bool bSwap)
static uint32_t | byteSwap (uint32_t value, bool bSwap)
static uint16_t | byteSwap (uint16_t value, bool bSwap)
static uint16_t | byteSwap2 (const DataBuf &buf, size_t offset, bool bSwap)
static uint32_t | byteSwap4 (const DataBuf &buf, size_t offset, bool bSwap)
static uint64_t | byteSwap8 (const DataBuf &buf, size_t offset, bool bSwap)
const std::string & | tagName (uint16_t tag)
| Return tag name for given tag id.
static const char * | typeName (uint16_t tag)
| Return tag type for given tag id.
BasicIo::UniquePtr | io_
| Image data IO pointer.
ExifData | exifData_
| Exif data container.
IptcData | iptcData_
| IPTC data container.
XmpData | xmpData_
| XMP data container.
DataBuf | iccProfile_
| ICC buffer (binary data).
std::string | comment_
| User comment.
std::string | xmpPacket_
| XMP packet.
uint32_t | pixelWidth_ {0}
| image pixel width
uint32_t | pixelHeight_ {0}
| image pixel height
NativePreviewList | nativePreviews_
| list of native previews

## Detailed Description

Class to access PGF images. Exif and IPTC metadata are supported directly.

## Constructor & Destructor Documentation

## ◆ PgfImage()

Exiv2::PgfImage::PgfImage | ( | BasicIo::UniquePtr | io,
|  | bool | create )

Constructor that can either open an existing PGF image or create a new image from scratch. If a new image is to be created, any existing data is overwritten. Since the constructor can not return a result, callers should check the good() method after object construction to determine success or failure.

Parameters

  io | An auto-pointer that owns a BasicIo instance used for reading and writing image metadata. Important: The constructor takes ownership of the passed in BasicIo instance through the auto-pointer. Callers should not continue to use the BasicIo instance after it is passed to this method. Use the Image::io() method to get a temporary reference.
  create | Specifies if an existing image should be read (false) or if a new file should be created (true).

References Exiv2::Image::Image(), Exiv2::Image::io(), Exiv2::Image::io_, and Exiv2::Image::isBigEndianPlatform().

## Member Function Documentation

## ◆ mimeType()

std::string Exiv2::PgfImage::mimeType | ( |  | ) | const
| inline nodiscard override virtual

Return the MIME type of the image.

Note
  For each supported image format, the library knows only one MIME type. This may not be the most specific MIME type for that format. In particular, several RAW formats are variants of the TIFF format with the same magic as TIFF itself. Class TiffImage handles most of them and thus they all have MIME type "image/tiff", although a more specific MIME type may exist (e.g., "image/x-nikon-nef").

Implements Exiv2::Image.

## ◆ readMetadata()

void Exiv2::PgfImage::readMetadata | ( |  | ) |
| override virtual

Read all metadata supported by a specific image format from the image. Before this method is called, the image metadata will be cleared.

This method returns success even if no metadata is found in the image. Callers must therefore check the size of individual metadata types before accessing the data.

Exceptions

  Error | if opening or reading of the file fails or the image data is not valid (does not look like data of the specific image type).

Implements Exiv2::Image.

References Exiv2::DataBuf::c_data(), Exiv2::Image::clearMetadata(), Exiv2::DataBuf::data(), Exiv2::Internal::enforce(), Exiv2::Image::exifData(), Exiv2::Image::io_, Exiv2::Image::iptcData(), Exiv2::isPgfType(), Exiv2::ImageFactory::open(), Exiv2::Image::pixelHeight_, Exiv2::Image::pixelWidth_, readMetadata(), Exiv2::strError(), and Exiv2::Image::xmpData().

Referenced by readMetadata().

## ◆ writeMetadata()

void Exiv2::PgfImage::writeMetadata | ( |  | ) |
| override virtual

Write metadata back to the image.

All existing metadata sections in the image are either created, replaced, or erased. If values for a given metadata type have been assigned, a section for that metadata type will either be created or replaced. If no values have been assigned to a given metadata type, any exists section for that metadata type will be removed from the image.

Exceptions

  Error | if the operation fails

Implements Exiv2::Image.

References Exiv2::Image::io_, Exiv2::strError(), and writeMetadata().

Referenced by writeMetadata().

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

- pgfimage.hpp
- pgfimage.cpp