![]() |
Exiv2
|
Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs). More...
#include <jpgimage.hpp>
Static Public Member Functions | |
static bool | isIrb (const byte *pPsData, long sizePsData) |
Checks an IRB. More... | |
static bool | valid (const byte *pPsData, long sizePsData) |
Validates all IRBs. More... | |
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. More... | |
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 int | locatePreviewIrb (const byte *pPsData, long sizePsData, const byte **record, uint32_t *const sizeHdr, uint32_t *const sizeData) |
Forwards to locatePreviewIrb() with psTag = preview_. | |
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. More... | |
Static Public Attributes | |
static const char | ps3Id_ [] = "Photoshop 3.0\0" |
Photoshop marker | |
static const char * | irbId_ [] = {"8BIM", "AgHg", "DCSR", "PHUT"} |
Photoshop IRB markers | |
static const char | bimId_ [] = "8BIM" |
Photoshop IRB marker (deprecated) | |
static const uint16_t | iptc_ = 0x0404 |
Photoshop IPTC marker | |
static const uint16_t | preview_ = 0x040c |
Photoshop preview marker | |
Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs).
|
static |
Checks an IRB.
pPsData | Existing IRB buffer |
sizePsData | Size of the IRB buffer |
References irbId_.
Referenced by locateIrb(), and Exiv2::PsdImage::readMetadata().
|
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 Exiv2::getULong(), Exiv2::getUShort(), and isIrb().
Referenced by locateIptcIrb(), and locatePreviewIrb().
|
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(), Exiv2::IptcParser::encode(), Exiv2::hexdump(), iptc_, irbId_, locateIptcIrb(), Exiv2::DataBuf::pData_, Exiv2::DataBuf::size_, Exiv2::ul2Data(), and Exiv2::us2Data().
|
static |
Validates all IRBs.
pPsData | Existing IRB buffer |
sizePsData | Size of the IRB buffer, may be 0 |
References locateIptcIrb().
Referenced by Exiv2::JpegBase::readMetadata().