Exiv2::Internal::TiffParserWorker Class Reference

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

`#include <tiffimage_int.hpp>`

## Static Public Member Functions

static ByteOrder | decode (ExifData &exifData, IptcData &iptcData, XmpData &xmpData, const byte *pData, uint32_t size, uint32_t root, FindDecoderFct findDecoderFct, TiffHeaderBase *pHeader=0)
| Decode TIFF metadata from a data buffer pData of length size into the provided metadata containers. More...
static WriteMethod | encode (BasicIo &io, const byte *pData, uint32_t size, const ExifData &exifData, const IptcData &iptcData, const XmpData &xmpData, uint32_t root, FindEncoderFct findEncoderFct, TiffHeaderBase *pHeader, OffsetWriter *pOffsetWriter)
| Encode TIFF metadata from the metadata containers into a memory block blob. More...

## Detailed Description

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

## Member Function Documentation

## decode()

ByteOrder Exiv2::Internal::TiffParserWorker::decode | ( | ExifData & | exifData,
|  | IptcData & | iptcData,
|  | XmpData & | xmpData,
|  | const byte * | pData,
|  | uint32_t | size,
|  | uint32_t | root,
|  | FindDecoderFct | findDecoderFct,
|  | TiffHeaderBase * | pHeader = `0`
| ) |  |

static

Decode TIFF metadata from a data buffer pData of length size into the provided metadata containers.

This is the entry point to access image data in TIFF format. The parser uses classes TiffHeader and the TiffComponent and TiffVisitor hierarchies.

Parameters

  exifData | Exif metadata container.
  iptcData | IPTC metadata container.
  xmpData | XMP metadata container.
  pData | Pointer to the data buffer. Must point to data in TIFF format; no checks are performed.
  size | Length of the data buffer.
  root | Root tag of the TIFF tree for new TIFF components.
  findDecoderFct | Function to access special decoding info.
  pHeader | Optional pointer to a TIFF header. If not provided, a standard TIFF header is used.

Returns
  Byte order in which the data is encoded, invalidByteOrder if decoding failed.

References Exiv2::Internal::TiffHeaderBase::byteOrder().

Referenced by Exiv2::Cr2Parser::decode(), Exiv2::OrfParser::decode(), Exiv2::Rw2Parser::decode(), and Exiv2::TiffParser::decode().

## encode()

WriteMethod Exiv2::Internal::TiffParserWorker::encode | ( | BasicIo & | io,
|  | const byte * | pData,
|  | uint32_t | size,
|  | const ExifData & | exifData,
|  | const IptcData & | iptcData,
|  | const XmpData & | xmpData,
|  | uint32_t | root,
|  | FindEncoderFct | findEncoderFct,
|  | TiffHeaderBase * | pHeader,
|  | OffsetWriter * | pOffsetWriter
| ) |  |

static

Encode TIFF metadata from the metadata containers into a memory block blob.

1) Parse the binary image, if one is provided, and 2) attempt updating the parsed tree in-place ("non-intrusive writing") 3) else, create a new tree and write a new TIFF structure ("intrusive writing"). If there is a parsed tree, it is only used to access the image data in this case.

References Exiv2::Internal::TiffEncoder::add(), Exiv2::Internal::TiffHeaderBase::byteOrder(), Exiv2::Internal::TiffCreator::create(), Exiv2::Internal::TiffEncoder::dirty(), EXV_INFO, Exiv2::DataBuf::pData_, Exiv2::DataBuf::size_, Exiv2::BasicIo::transfer(), Exiv2::Internal::TiffHeaderBase::write(), and Exiv2::Internal::OffsetWriter::writeOffsets().

Referenced by Exiv2::Cr2Parser::encode(), Exiv2::OrfParser::encode(), Exiv2::TiffParser::encode(), and Exiv2::ExifParser::encode().

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

- tiffimage_int.hpp
- tiffimage_int.cpp