Exiv2::Internal::Cr2Header Class Reference

Canon CR2 header structure. More...

`#include <cr2header_int.hpp>`

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

## Public Member Functions

Creators
| Cr2Header (ByteOrder byteOrder=littleEndian)
| Default constructor.
| ~Cr2Header ()
| Destructor.
Manipulators
bool | read (const byte *pData, uint32_t size)
| Read the image header from a data buffer. Return false if the data buffer does not contain an image header of the expected format, else true. More...
Public Member Functions inherited from Exiv2::Internal::TiffHeaderBase
| TiffHeaderBase (uint16_t tag, uint32_t size, ByteOrder byteOrder, uint32_t offset)
| Constructor taking tag, size and default byteOrder and offset.
virtual | ~TiffHeaderBase ()=0
| Virtual destructor.
virtual void | setByteOrder (ByteOrder byteOrder)
| Set the byte order.
virtual void | setOffset (uint32_t offset)
| Set the offset to the start of the root directory.
virtual void | print (std::ostream &os, const std::string &prefix="") const
| Print debug info for the image header to os. More...
virtual ByteOrder | byteOrder () const
| Return the byte order (little or big endian).
virtual uint32_t | offset () const
| Return the offset to the start of the root directory.
virtual uint32_t | size () const
| Return the size (in bytes) of the image header.
virtual uint16_t | tag () const
| Return the tag value (magic number) which identifies the buffer as TIFF data.

## Accessors

DataBuf | write () const
| Return the image header in binary format. The caller owns this data and DataBuf ensures that it will be deleted. More...
bool | isImageTag (uint16_t tag, IfdId group, const PrimaryGroups *pPrimaryGroups) const
| Return `true` if the Exif tag from group is an image tag. More...
static uint32_t | offset2addr ()
| Return the address of offset2 from the start of the header.

## Detailed Description

Canon CR2 header structure.

## Member Function Documentation

## isImageTag()

bool Exiv2::Internal::Cr2Header::isImageTag | ( | uint16_t | tag,
|  | IfdId | group,
|  | const PrimaryGroups * | pPrimaryGroups
| ) |  | const

virtual

Return `true` if the Exif tag from group is an image tag.

Certain tags of TIFF and TIFF-like images are required to correctly display the primary image. These image tags contain image data rather than metadata.

Parameters

  tag | Tag number.
  group | Group identifier.
  pPrimaryGroups | Pointer to a list of TIFF groups that contain primary images, empty if none are marked.

Returns
  The default implementation returns `false`.

Reimplemented from Exiv2::Internal::TiffHeaderBase.

References Exiv2::Internal::isTiffImageTag(), and Exiv2::Internal::TiffHeaderBase::tag().

## read()

bool Exiv2::Internal::Cr2Header::read | ( | const byte * | pData,
|  | uint32_t | size
| ) |  |

virtual

Read the image header from a data buffer. Return false if the data buffer does not contain an image header of the expected format, else true.

Parameters

  pData | Pointer to the data buffer.
  size | Number of bytes in the data buffer.

Returns
  True if the TIFF header was read successfully. False if the data buffer does not contain a valid TIFF header.

Reimplemented from Exiv2::Internal::TiffHeaderBase.

References Exiv2::Internal::TiffHeaderBase::byteOrder(), Exiv2::getULong(), Exiv2::getUShort(), Exiv2::Internal::TiffHeaderBase::setByteOrder(), Exiv2::Internal::TiffHeaderBase::setOffset(), Exiv2::Internal::TiffHeaderBase::size(), and Exiv2::Internal::TiffHeaderBase::tag().

Referenced by Exiv2::isCr2Type(), and Exiv2::Cr2Image::writeMetadata().

## write()

DataBuf Exiv2::Internal::Cr2Header::write | ( |  | ) | const

virtual

Return the image header in binary format. The caller owns this data and DataBuf ensures that it will be deleted.

Returns
  Binary header data.

Reimplemented from Exiv2::Internal::TiffHeaderBase.

References Exiv2::Internal::TiffHeaderBase::byteOrder(), Exiv2::DataBuf::pData_, Exiv2::Internal::TiffHeaderBase::tag(), Exiv2::ul2Data(), and Exiv2::us2Data().

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

- cr2header_int.hpp
- cr2header_int.cpp