# Exiv2::Photoshop Struct Reference

Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs). More...

`#include <jpgimage.hpp>`

List of all members.

## Static Public Member Functions

static int | locateIrb (const byte *pPsData, long sizePsData, uint16_t psTag, const byte **record, uint16_t *const sizeHdr, uint16_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, uint16_t *const sizeHdr, uint16_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

## Detailed Description

Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs).

## Member Function Documentation

int Exiv2::Photoshop::locateIrb | ( | const byte * | pPsData,
|  | long | sizePsData,
|  | uint16_t | psTag,
|  | const byte ** | record,
|  | uint16_t *const | sizeHdr,
|  | uint16_t *const | sizeData
| ) | `[static]`

Locates the data for a Photoshop tag in a Photoshop formated memory buffer. Operates on raw data to simplify reuse.

Parameters:

  | 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).

Returns:
  0 if successful;
  3 if no data for psTag was found in pPsData;
  -2 if the pPsData buffer does not contain valid data.

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.

Parameters:

  | pPsData | Existing IRB buffer
  | sizePsData | Size of the IRB buffer, may be 0
  | iptcData | Iptc data to embed, may be empty

Returns:
  A data buffer containing the new IRB buffer, may have 0 size

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

- jpgimage.hpp
- jpgimage.cpp