Loading...
Searching...
No Matches
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.
Manipulators
bool | read (const byte *pData, size_t size) override
| 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.
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 ()=default
| 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.
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 override
| Return the image header in binary format. The caller owns this data and DataBuf ensures that it will be deleted.
bool | isImageTag (uint16_t tag, IfdId group, const PrimaryGroups *pPrimaryGroups) const override
| Return `true` if the Exif tag from group is an image tag.
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

override 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,
|  | size_t | size )

override 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

nodiscard override 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(), and Exiv2::Internal::TiffHeaderBase::tag().

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

- cr2header_int.hpp
- cr2header_int.cpp