Exiv2
Public Types | Static Public Member Functions

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>

List of all members.

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.
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.
static DataBuf keyTXTChunk (const DataBuf &data, bool stripHeader=false)
 Return PNG TXT chunk key as data buffer.
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.

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

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines