Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs). More...
#include <jpgimage.hpp>
Static Public Member Functions | |
static bool | valid (const byte *pPsData, long sizePsData) |
Validates all IRBs. | |
static int | locateIrb (const byte *pPsData, long sizePsData, uint16_t psTag, const byte **record, uint32_t *const sizeHdr, uint32_t *const sizeData) |
Locates the data for a Photoshop tag in a Photoshop formated memory buffer. Operates on raw data to simplify reuse. | |
static int | locateIptcIrb (const byte *pPsData, long sizePsData, const byte **record, uint32_t *const sizeHdr, uint32_t *const sizeData) |
Forwards to locateIrb() with psTag = iptc_. | |
static DataBuf | setIptcIrb (const byte *pPsData, long sizePsData, const IptcData &iptcData) |
Set the new IPTC IRB, keeps existing IRBs but removes the IPTC block if there is no new IPTC data to write. | |
Static Public Attributes | |
static const char | ps3Id_ [] = "Photoshop 3.0\0" |
Photoshop marker | |
static const char | bimId_ [] = "8BIM" |
Photoshop marker | |
static const uint16_t | iptc_ = 0x0404 |
Photoshop IPTC marker |
Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs).
int Exiv2::Photoshop::locateIrb | ( | const byte * | pPsData, | |
long | sizePsData, | |||
uint16_t | psTag, | |||
const byte ** | record, | |||
uint32_t *const | sizeHdr, | |||
uint32_t *const | sizeData | |||
) | [static] |
Locates the data for a Photoshop tag in a Photoshop formated memory buffer. Operates on raw data to simplify reuse.
pPsData | Pointer to buffer containing entire payload of Photoshop formated data, e.g., from APP13 Jpeg segment. | |
sizePsData | Size in bytes of pPsData. | |
psTag | Tag number of the block to look for. | |
record | Output value that is set to the start of the data block within pPsData (may not be null). | |
sizeHdr | Output value that is set to the size of the header within the data block pointed to by record (may not be null). | |
sizeData | Output value that is set to the size of the actual data within the data block pointed to by record (may not be null). |
References bimId_, Exiv2::getULong(), and Exiv2::getUShort().
Referenced by locateIptcIrb().
DataBuf Exiv2::Photoshop::setIptcIrb | ( | const byte * | pPsData, | |
long | sizePsData, | |||
const IptcData & | iptcData | |||
) | [static] |
Set the new IPTC IRB, keeps existing IRBs but removes the IPTC block if there is no new IPTC data to write.
pPsData | Existing IRB buffer | |
sizePsData | Size of the IRB buffer, may be 0 | |
iptcData | Iptc data to embed, may be empty |
References Exiv2::append(), bimId_, Exiv2::IptcParser::encode(), Exiv2::hexdump(), iptc_, locateIptcIrb(), Exiv2::DataBuf::pData_, Exiv2::DataBuf::size_, Exiv2::ul2Data(), and Exiv2::us2Data().
bool Exiv2::Photoshop::valid | ( | const byte * | pPsData, | |
long | sizePsData | |||
) | [static] |
Validates all IRBs.
pPsData | Existing IRB buffer | |
sizePsData | Size of the IRB buffer, may be 0 |
References locateIptcIrb().
Referenced by Exiv2::JpegBase::readMetadata().