Exiv2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Static Public Member Functions | List of all members
Exiv2::Internal::PngChunk Class Reference

Stateless parser class for data in PNG chunk format. Images use this class to decode and encode PNG-based data. More...

#include <pngchunk_int.hpp>

Public Types

enum  TxtChunkType { tEXt_Chunk = 0, zTXt_Chunk = 1, iTXt_Chunk = 2 }
 Text Chunk types.
 

Static Public Member Functions

static void decodeIHDRChunk (const DataBuf &data, int *outWidth, int *outHeight)
 Decode PNG IHDR chunk data from a data buffer data and return image size to outWidth and outHeight. More...
 
static void decodeTXTChunk (Image *pImage, const DataBuf &data, TxtChunkType type)
 Decode PNG tEXt, zTXt, or iTXt chunk data from pImage passed by data buffer data and extract Comment, Exif, Iptc, Xmp metadata accordingly. More...
 
static DataBuf keyTXTChunk (const DataBuf &data, bool stripHeader=false)
 Return PNG TXT chunk key as data buffer. More...
 
static std::string makeMetadataChunk (const std::string &metadata, MetadataId type)
 Return a complete PNG chunk data compressed or not as buffer. Data returned is formated accordingly with metadata type to host passed by metadata. More...
 

Detailed Description

Stateless parser class for data in PNG chunk format. Images use this class to decode and encode PNG-based data.

Member Function Documentation

void Exiv2::Internal::PngChunk::decodeIHDRChunk ( const DataBuf data,
int *  outWidth,
int *  outHeight 
)
static

Decode PNG IHDR chunk data from a data buffer data and return image size to outWidth and outHeight.

Parameters
dataPNG Chunk data buffer.
outWidthInteger pointer to be set to the width of the image.
outHeightInteger pointer to be set to the height of the image.

References Exiv2::getLong(), and Exiv2::DataBuf::pData_.

Referenced by Exiv2::PngImage::readMetadata().

void Exiv2::Internal::PngChunk::decodeTXTChunk ( Image pImage,
const DataBuf data,
TxtChunkType  type 
)
static

Decode PNG tEXt, zTXt, or iTXt chunk data from pImage passed by data buffer data and extract Comment, Exif, Iptc, Xmp metadata accordingly.

Parameters
pImagePointer to the image to hold the metadata
dataPNG Chunk data buffer.
typePNG Chunk TXT type.

References keyTXTChunk(), Exiv2::DataBuf::pData_, Exiv2::DataBuf::size_, and Exiv2::string.

Referenced by Exiv2::PngImage::readMetadata().

DataBuf Exiv2::Internal::PngChunk::keyTXTChunk ( const DataBuf data,
bool  stripHeader = false 
)
static

Return PNG TXT chunk key as data buffer.

Parameters
dataPNG Chunk data buffer.
stripHeaderSet true if chunk data start with header bytes, else false (default).

References Exiv2::DataBuf::pData_, and Exiv2::DataBuf::size_.

Referenced by decodeTXTChunk().

std::string Exiv2::Internal::PngChunk::makeMetadataChunk ( const std::string &  metadata,
MetadataId  type 
)
static

Return a complete PNG chunk data compressed or not as buffer. Data returned is formated accordingly with metadata type to host passed by metadata.

Parameters
metadatametadata buffer.
typemetadata type.

References Exiv2::string.


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