3#ifndef PHOTOSHOP_INT_HPP
4#define PHOTOSHOP_INT_HPP
6#include "exiv2lib_export.h"
19 static constexpr std::array<const char*, 4>
irbId_{
"8BIM",
"AgHg",
"DCSR",
"PHUT"};
20 static constexpr auto ps3Id_ =
"Photoshop 3.0\0";
21 static constexpr uint16_t
iptc_ = 0x0404;
29 static bool isIrb(
const byte* pPsData);
35 static bool valid(
const byte* pPsData,
size_t sizePsData);
50 static int locateIrb(
const byte* pPsData,
size_t sizePsData, uint16_t psTag,
const byte** record, uint32_t& sizeHdr,
54 static int locateIptcIrb(
const byte* pPsData,
size_t sizePsData,
const byte** record, uint32_t& sizeHdr,
58 static int locatePreviewIrb(
const byte* pPsData,
size_t sizePsData,
const byte** record, uint32_t& sizeHdr,
A container for IPTC data. This is a top-level class of the Exiv2 library.
Definition iptc.hpp:153
Class CrwImage to access Canon CRW images. References: The Canon RAW (CRW) File Format by Phil Harv...
Definition asfvideo.hpp:15
Utility class containing a character array. All it does is to take care of memory allocation and dele...
Definition types.hpp:124
Helper class, has methods to deal with Photoshop "Information Resource Blocks" (IRBs).
Definition photoshop.hpp:17
static int locateIrb(const byte *pPsData, size_t sizePsData, uint16_t psTag, const byte **record, uint32_t &sizeHdr, uint32_t &sizeData)
Locates the data for a Photoshop tag in a Photoshop formatted memory buffer. Operates on raw data to ...
Definition photoshop.cpp:34
static bool isIrb(const byte *pPsData)
Checks an IRB.
Definition photoshop.cpp:11
static constexpr auto ps3Id_
Photoshop marker
Definition photoshop.hpp:20
static int locateIptcIrb(const byte *pPsData, size_t sizePsData, const byte **record, uint32_t &sizeHdr, uint32_t &sizeData)
Forwards to locateIrb() with psTag = iptc_.
Definition photoshop.cpp:105
static int locatePreviewIrb(const byte *pPsData, size_t sizePsData, const byte **record, uint32_t &sizeHdr, uint32_t &sizeData)
Forwards to locatePreviewIrb() with psTag = preview_.
Definition photoshop.cpp:110
static DataBuf setIptcIrb(const byte *pPsData, size_t 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 ...
Definition photoshop.cpp:115
static constexpr uint16_t preview_
Photoshop preview marker
Definition photoshop.hpp:22
static bool valid(const byte *pPsData, size_t sizePsData)
Validates all IRBs.
Definition photoshop.cpp:18
static constexpr uint16_t iptc_
Photoshop IPTC marker
Definition photoshop.hpp:21
static constexpr std::array< const char *, 4 > irbId_
Photoshop IRB markers
Definition photoshop.hpp:19