Exiv2::Internal::TiffImageEntry Class Reference

A standard TIFF IFD entry consisting of a value which is an array of offsets to image data areas. The sizes of the image data areas are provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More...

`#include <tiffcomposite_int.hpp>`

Inheritance diagram for Exiv2::Internal::TiffImageEntry:
[legend]

## Public Member Functions

Creators
| TiffImageEntry (uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
| Constructor.
virtual | ~TiffImageEntry ()
| Virtual destructor.
Manipulators
virtual void | setStrips (const Value *pSize, const byte *pData, uint32_t sizeData, uint32_t baseOffset)
| Set the data areas ("strips"). More...
Public Member Functions inherited from Exiv2::Internal::TiffDataEntryBase
| TiffDataEntryBase (uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
| Constructor.
virtual | ~TiffDataEntryBase ()
| Virtual destructor.
uint16_t | szTag () const
| Return the group of the entry which has the size.
IfdId | szGroup () const
| Return the group of the entry which has the size.
Public Member Functions inherited from Exiv2::Internal::TiffEntryBase
| TiffEntryBase (uint16_t tag, IfdId group, TiffType tiffType=ttUndefined)
| Default constructor.
virtual | ~TiffEntryBase ()
| Virtual destructor.
void | encode (TiffEncoder &encoder, const Exifdatum *datum)
| Encode a TIFF component from the metadatum provided and information from the encoder as needed. More...
void | setOffset (int32_t offset)
| Set the offset.
void | setData (byte *pData, int32_t size)
| Set pointer and size of the entry's data (not taking ownership of the data).
void | setData (DataBuf buf)
| Set the entry's data buffer, taking ownership of the data buffer passed in.
void | updateValue (Value::AutoPtr value, ByteOrder byteOrder)
| Update the value. Takes ownership of the pointer passed in. More...
void | setValue (Value::AutoPtr value)
| Set tag value. Takes ownership of the pointer passed in. More...
TiffType | tiffType () const
| Return the TIFF type.
int32_t | offset () const
| Return the offset to the data area relative to the base for the component (usually the start of the TIFF header)
virtual int | idx () const
| Return the unique id of the entry in the image.
const byte * | pData () const
| Return a pointer to the binary representation of the value of this component.
const Value * | pValue () const
| Return a const pointer to the converted value of this component.
Public Member Functions inherited from Exiv2::Internal::TiffComponent
| TiffComponent (uint16_t tag, IfdId group)
| Constructor.
virtual | ~TiffComponent ()
| Virtual destructor.
TiffComponent * | addPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *const pRoot, AutoPtr object=AutoPtr(0))
| Add a TIFF entry tag to the component. Components on the path to the entry are added if they don't exist yet. More...
TiffComponent * | addChild (AutoPtr tiffComponent)
| Add a child to the component. Default is to do nothing. More...
TiffComponent * | addNext (AutoPtr tiffComponent)
| Add a "next" component to the component. Default is to do nothing. More...
void | accept (TiffVisitor &visitor)
| Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of the composite. More...
void | setStart (const byte *pStart)
| Set a pointer to the start of the binary representation of the component in a memory buffer. The buffer must be allocated and freed outside of this class.
uint32_t | write (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &imageIdx)
| Write a TiffComponent to a binary image. More...
uint16_t | tag () const
| Return the tag of this entry.
IfdId | group () const
| Return the group id of this component.
byte * | start () const
| Return a pointer to the start of the binary representation of the component.
AutoPtr | clone () const
| Return an auto-pointer to a copy of itself (deep copy, but without any children). The caller owns this copy and the auto-pointer ensures that it will be deleted.
uint32_t | writeData (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &imageIdx) const
| Write the IFD data of this component to a binary image. Return the number of bytes written. Components derived from TiffEntryBase implement this method if needed.
uint32_t | writeImage (IoWrapper &ioWrapper, ByteOrder byteOrder) const
| Write the image data of this component to a binary image. Return the number of bytes written. TIFF components implement this method if needed.
uint32_t | size () const
| Return the size in bytes of the IFD value of this component when written to a binary image.
uint32_t | count () const
| Return the number of components in this component.
uint32_t | sizeData () const
| Return the size in bytes of the IFD data of this component when written to a binary image. This is a support function for write(). Components derived from TiffEntryBase implement this method corresponding to their implementation of writeData().
uint32_t | sizeImage () const
| Return the size in bytes of the image data of this component when written to a binary image. This is a support function for write(). TIFF components implement this method corresponding to their implementation of writeImage().

## Protected Member Functions

Protected Manipulators
virtual void | doAccept (TiffVisitor &visitor)
| Implements accept().
virtual void | doEncode (TiffEncoder &encoder, const Exifdatum *datum)
| Implements encode().
virtual uint32_t | doWrite (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &imageIdx)
| Implements write(). Write pointers into the image data area to the ioWrapper. Return the number of bytes written. The valueIdx and dataIdx arguments are not used.
Protected Member Functions inherited from Exiv2::Internal::TiffEntryBase
| TiffEntryBase (const TiffEntryBase &rhs)
| Copy constructor (used to implement clone()).
void | setCount (uint32_t count)
| Set the number of components in this entry.
void | setIdx (int idx)
| Set the unique id of the entry in the image.
virtual uint32_t | doCount () const
| Implements count().
Protected Member Functions inherited from Exiv2::Internal::TiffComponent
virtual TiffComponent * | doAddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *const pRoot, TiffComponent::AutoPtr object)
| Implements addPath(). The default implementation does nothing.
virtual TiffComponent * | doAddChild (AutoPtr tiffComponent)
| Implements addChild(). The default implementation does nothing.
virtual TiffComponent * | doAddNext (AutoPtr tiffComponent)
| Implements addNext(). The default implementation does nothing.

## Friends

class | TiffEncoder

## Protected Accessors

virtual TiffImageEntry * | doClone () const
| Internal virtual copy constructor, implements clone().
virtual uint32_t | doWriteData (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &imageIdx) const
| Implements writeData(). Write the image data area to the ioWrapper. Return the number of bytes written. More...
virtual uint32_t | doWriteImage (IoWrapper &ioWrapper, ByteOrder byteOrder) const
| Implements writeImage(). Write the image data area to the ioWrapper. Return the number of bytes written.
virtual uint32_t | doSize () const
| Implements size(). Return the size of the strip pointers.
virtual uint32_t | doSizeData () const
| Implements sizeData(). Return the size of the image data area.
virtual uint32_t | doSizeImage () const
| Implements sizeImage(). Return the size of the image data area.

## Additional Inherited Members

Public Types inherited from Exiv2::Internal::TiffComponent
typedef std::auto_ptr< TiffComponent > | AutoPtr
| TiffComponent auto_ptr type.
typedef std::vector< TiffComponent * > | Components
| Container type to hold all metadata.
Static Protected Member Functions inherited from Exiv2::Internal::TiffEntryBase
static uint32_t | writeOffset (byte *buf, int32_t offset, TiffType tiffType, ByteOrder byteOrder)
| Helper function to write an offset to a preallocated binary buffer.

## Detailed Description

A standard TIFF IFD entry consisting of a value which is an array of offsets to image data areas. The sizes of the image data areas are provided in a related TiffSizeEntry, tag and group of which are set in the constructor.

The data is not extracted into the higher level metadata tags, it is only copied to the target image when the image is written. This component is used, e.g., for Exif.Image.StripOffsets for which the sizes are provided in Exif.Image.StripByteCounts.

## Member Function Documentation

## doWriteData()

uint32_t Exiv2::Internal::TiffImageEntry::doWriteData | ( | IoWrapper & | ioWrapper,
|  | ByteOrder | byteOrder,
|  | int32_t | offset,
|  | uint32_t | dataIdx,
|  | uint32_t & | imageIdx
| ) |  | const

protected virtual

Implements writeData(). Write the image data area to the ioWrapper. Return the number of bytes written.

This function writes the image data to the data area of the current directory. It is used for TIFF image entries in the makernote (large preview images) so that the image data remains in the makernote IFD.

Reimplemented from Exiv2::Internal::TiffEntryBase.

References Exiv2::Internal::TiffComponent::group(), and Exiv2::Internal::TiffComponent::writeImage().

## setStrips()

void Exiv2::Internal::TiffImageEntry::setStrips | ( | const Value * | pSize,
|  | const byte * | pData,
|  | uint32_t | sizeData,
|  | uint32_t | baseOffset
| ) |  |

virtual

Set the data areas ("strips").

Parameters

  pSize | Pointer to the Value holding the sizes corresponding to this data entry.
  pData | Pointer to the data area.
  sizeData | Size of the data area.
  baseOffset | Base offset into the data area.

Implements Exiv2::Internal::TiffDataEntryBase.

References Exiv2::Internal::TiffComponent::count(), Exiv2::Value::count(), EXV_WARNING, Exiv2::Internal::TiffComponent::group(), Exiv2::Internal::groupName(), Exiv2::Internal::TiffEntryBase::offset(), Exiv2::Internal::TiffEntryBase::pData(), Exiv2::Internal::TiffEntryBase::pValue(), Exiv2::Internal::TiffComponent::size(), Exiv2::Internal::TiffComponent::sizeData(), Exiv2::Internal::TiffComponent::tag(), and Exiv2::Value::toLong().

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

- tiffcomposite_int.hpp
- tiffcomposite_int.cpp