Exiv2
Static Public Member Functions | List of all members
Exiv2::Internal::Cr2Header Class Reference

Canon CR2 header structure. More...

#include <cr2header_int.hpp>

Inheritance diagram for Exiv2::Internal::Cr2Header:
Inheritance graph
[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...
 
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...
 
- 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.
 

Static Public Member Functions

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
tagTag number.
groupGroup identifier.
pPrimaryGroupsPointer 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
pDataPointer to the data buffer.
sizeNumber 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: