![]() |
Exiv2
|
This class models the header of a CRW (Canon Raw data) image. It is the head of a CIFF parse tree, consisting of CiffDirectory and CiffEntry objects. Most of its methods will walk the parse tree to perform the requested action. More...
#include <crwimage_int.hpp>
Public Types | |
| using | UniquePtr = std::unique_ptr<CiffHeader> |
| CiffHeader auto_ptr type. | |
Public Member Functions | |
Creators | |
| CiffHeader ()=default | |
| Default constructor. | |
| virtual | ~CiffHeader ()=default |
| Virtual destructor. | |
Accessors | |
| void | write (Blob &blob) const |
| Write the CRW image to the binary image blob, starting with the Ciff header. This method appends to the blob. | |
| void | decode (Image &image) const |
| Decode the CRW image and add it to image. | |
| ByteOrder | byteOrder () const |
| Return the byte order (little or big endian). | |
| CiffComponent * | findComponent (uint16_t crwTagId, uint16_t crwDir) const |
| Finds crwTagId in directory crwDir in the parse tree, returning a pointer to the component or 0 if not found. | |
Manipulators | |
| void | read (const byte *pData, size_t size) |
| Read the CRW image from a data buffer, starting with the Ciff header. | |
| void | add (uint16_t crwTagId, uint16_t crwDir, DataBuf &&buf) |
| Set the value of entry crwTagId in directory crwDir to buf. If this tag doesn't exist, it is added along with all directories needed. | |
| void | remove (uint16_t crwTagId, uint16_t crwDir) const |
| Remove entry crwTagId in directory crwDir from the parse tree. If it's the last entry in the directory, the directory is removed as well, etc. | |
| static const char * | signature () |
| Return a pointer to the Canon CRW signature. | |
This class models the header of a CRW (Canon Raw data) image. It is the head of a CIFF parse tree, consisting of CiffDirectory and CiffEntry objects. Most of its methods will walk the parse tree to perform the requested action.
| void Exiv2::Internal::CiffHeader::add | ( | uint16_t | crwTagId, |
| uint16_t | crwDir, | ||
| DataBuf && | buf ) |
Set the value of entry crwTagId in directory crwDir to buf. If this tag doesn't exist, it is added along with all directories needed.
References Exiv2::Internal::CrwMap::loadStack(), and Exiv2::Internal::CiffComponent::setValue().
| void Exiv2::Internal::CiffHeader::decode | ( | Image & | image | ) | const |
Decode the CRW image and add it to image.
Walk the parse tree and convert CIFF entries to metadata entries which are added to image.
| image | Image to add metadata to |
Referenced by Exiv2::CrwParser::decode().
|
nodiscard |
Finds crwTagId in directory crwDir in the parse tree, returning a pointer to the component or 0 if not found.
Finds crwTagId in directory crwDir, returning a pointer to the component or 0 if not found.
Referenced by Exiv2::CrwParser::decode().
| void Exiv2::Internal::CiffHeader::read | ( | const byte * | pData, |
| size_t | size ) |
Read the CRW image from a data buffer, starting with the Ciff header.
| pData | Pointer to the data buffer. |
| size | Number of bytes in the data buffer. |
| Error | If the image cannot be parsed. |
References Exiv2::getULong(), and signature().
Referenced by Exiv2::CrwParser::decode(), and Exiv2::CrwParser::encode().
| void Exiv2::Internal::CiffHeader::remove | ( | uint16_t | crwTagId, |
| uint16_t | crwDir ) const |
Remove entry crwTagId in directory crwDir from the parse tree. If it's the last entry in the directory, the directory is removed as well, etc.
| crwTagId | Tag id to be removed. |
| crwDir | Parent directory of the tag. |
References Exiv2::Internal::CrwMap::loadStack().
| void Exiv2::Internal::CiffHeader::write | ( | Blob & | blob | ) | const |
Write the CRW image to the binary image blob, starting with the Ciff header. This method appends to the blob.
| blob | Binary image to add to. |
| Error | If the image cannot be written. |
References Exiv2::append(), and Exiv2::ul2Data().
Referenced by Exiv2::CrwParser::encode().