#include "image.hpp"
#include "tifffwd_int.hpp"
#include "types.hpp"
#include <iosfwd>
#include <vector>
#include <string>
#include <cassert>
Classes | |
class | Exiv2::Internal::TiffComponent |
Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components. More... | |
struct | Exiv2::Internal::TiffStructure |
Data structure used as a row (element) of a table (array) describing the TIFF structure of an image format for reading and writing. Different tables can be used to support different TIFF based image formats. More... | |
struct | Exiv2::Internal::TiffStructure::TiffStructure::Key |
Search key for TIFF structure. More... | |
struct | Exiv2::Internal::TiffMappingInfo |
TIFF mapping table for functions to decode special cases. More... | |
struct | Exiv2::Internal::TiffMappingInfo::TiffMappingInfo::Key |
Search key for TIFF mapping structures. More... | |
class | Exiv2::Internal::TiffEntryBase |
This abstract base class provides the common functionality of an IFD directory entry and defines an extended interface for derived concrete entries, which allows access to the attributes of the entry. More... | |
class | Exiv2::Internal::TiffEntry |
A standard TIFF IFD entry. More... | |
class | Exiv2::Internal::TiffDataEntryBase |
Interface for a standard TIFF IFD entry consisting of a value which is a set of offsets to a data area. The sizes of these "strips" are provided in a related TiffSizeEntry, tag and group of which are set in the constructor. The implementations of this interface differ in whether the data areas are extracted to the higher level metadata (TiffDataEntry) or not (TiffImageEntry). More... | |
class | Exiv2::Internal::TiffDataEntry |
A standard TIFF IFD entry consisting of a value which is an offset to a data area and the data area. The size of the data area is provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More... | |
class | Exiv2::Internal::TiffImageEntry |
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... | |
class | Exiv2::Internal::TiffSizeEntry |
A TIFF IFD entry containing the size of a data area of a related TiffDataEntry. This component is used, e.g. for Exif.Thumbnail.JPEGInterchangeFormatLength, which contains the size of Exif.Thumbnail.JPEGInterchangeFormat. More... | |
class | Exiv2::Internal::TiffDirectory |
This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More... | |
class | Exiv2::Internal::TiffSubIfd |
This class models a TIFF sub-directory (sub-IFD). A sub-IFD is an entry with one or more values that are pointers to IFD structures containing an IFD. The TIFF standard defines some important tags to be sub-IFDs, including the Exif and GPS tags. More... | |
class | Exiv2::Internal::TiffMnEntry |
This class is the basis for Makernote support in TIFF. It contains a pointer to a concrete Makernote. The TiffReader visitor has the responsibility to create the correct Make/Model specific Makernote for a particular TIFF file. Calls to child management methods are forwarded to the concrete Makernote, if there is one. More... | |
class | Exiv2::Internal::TiffArrayEntry |
Composite to model an array of tags, each consisting of values of a given type. Canon and Minolta makernotes use such tags. The elements of this component are of type TiffArrayElement. More... | |
class | Exiv2::Internal::TiffArrayElement |
Element of a TiffArrayEntry. The value of all elements of a TiffArrayEntry must be of the same type. Canon and Minolta makernotes use such arrays. More... | |
Namespaces | |
namespace | Exiv2 |
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of the objects of this namespace. | |
namespace | Exiv2::Internal |
Contains internal objects which are not published and are not part of the libexiv2 API. | |
namespace | Exiv2::Internal::Group |
namespace | Exiv2::Internal::Tag |
Typedefs | |
typedef uint16_t | Exiv2::Internal::TiffType |
TIFF value type. | |
Functions | |
TypeId | Exiv2::Internal::toTypeId (TiffType tiffType, uint16_t tag, uint16_t group) |
Convert the tiffType of a tag and group to an Exiv2 typeId. | |
TiffType | Exiv2::Internal::toTiffType (TypeId typeId) |
Convert the Exiv2 typeId to a TIFF value type. | |
bool | Exiv2::Internal::cmpTagLt (TiffComponent const *lhs, TiffComponent const *rhs) |
Compare two TIFF component pointers by tag. Return true if the tag of component lhs is less than that of rhs. | |
const char * | Exiv2::Internal::tiffGroupName (uint16_t group) |
Return the group name for a group. | |
uint16_t | Exiv2::Internal::tiffGroupId (const std::string &groupName) |
Return the TIFF group id for a group name. | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffDirectory (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF directory. | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffEntry (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF entry. | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffSubIfd (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF sub-directory. | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffMnEntry (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF makernote entry. | |
template<TiffType tiffType, bool addSizeElement> | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffArrayEntry (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new array entry. | |
template<TiffType tiffType, ByteOrder byteOrder> | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffArrayElement (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new array element. | |
template<uint16_t szTag, uint16_t szGroup> | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffThumbData (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF entry for a thumbnail (data). | |
template<uint16_t dtTag, uint16_t dtGroup> | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffThumbSize (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF entry for a thumbnail (size). | |
template<uint16_t szTag, uint16_t szGroup> | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffImageData (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF entry for image data. | |
template<uint16_t dtTag, uint16_t dtGroup> | |
TiffComponent::AutoPtr | Exiv2::Internal::newTiffImageSize (uint16_t tag, const TiffStructure *ts) |
Function to create and initialize a new TIFF entry for image data (size). | |
Variables | |
const TiffType | Exiv2::Internal::ttUnsignedByte = 1 |
Exif BYTE type. | |
const TiffType | Exiv2::Internal::ttAsciiString = 2 |
Exif ASCII type. | |
const TiffType | Exiv2::Internal::ttUnsignedShort = 3 |
Exif SHORT type. | |
const TiffType | Exiv2::Internal::ttUnsignedLong = 4 |
Exif LONG type. | |
const TiffType | Exiv2::Internal::ttUnsignedRational = 5 |
Exif RATIONAL type. | |
const TiffType | Exiv2::Internal::ttSignedByte = 6 |
Exif SBYTE type. | |
const TiffType | Exiv2::Internal::ttUndefined = 7 |
Exif UNDEFINED type. | |
const TiffType | Exiv2::Internal::ttSignedShort = 8 |
Exif SSHORT type. | |
const TiffType | Exiv2::Internal::ttSignedLong = 9 |
Exif SLONG type. | |
const TiffType | Exiv2::Internal::ttSignedRational = 10 |
Exif SRATIONAL type. | |
const TiffType | Exiv2::Internal::ttTiffFloat = 11 |
TIFF FLOAT type. | |
const TiffType | Exiv2::Internal::ttTiffDouble = 12 |
TIFF DOUBLE type. | |
const TiffType | Exiv2::Internal::ttTiffIfd = 13 |
TIFF IFD type. | |
const uint16_t | Exiv2::Internal::Group::none = 0 |
Dummy group. | |
const uint16_t | Exiv2::Internal::Group::ifd0 = 1 |
Exif IFD0. | |
const uint16_t | Exiv2::Internal::Group::ifd1 = 2 |
Thumbnail IFD. | |
const uint16_t | Exiv2::Internal::Group::ifd2 = 3 |
IFD2. | |
const uint16_t | Exiv2::Internal::Group::exif = 4 |
Exif IFD. | |
const uint16_t | Exiv2::Internal::Group::gps = 5 |
GPS IFD. | |
const uint16_t | Exiv2::Internal::Group::iop = 6 |
Interoperability IFD. | |
const uint16_t | Exiv2::Internal::Group::subimg1 = 7 |
1st TIFF SubIFD in IFD0 | |
const uint16_t | Exiv2::Internal::Group::subimg2 = 8 |
2nd TIFF SubIFD in IFD0 | |
const uint16_t | Exiv2::Internal::Group::subimg3 = 9 |
3rd TIFF SubIFD in IFD0 | |
const uint16_t | Exiv2::Internal::Group::subimg4 = 10 |
4th TIFF SubIFD in IFD0 | |
const uint16_t | Exiv2::Internal::Group::mn = 256 |
Makernote. | |
const uint16_t | Exiv2::Internal::Group::ignr = 511 |
Read but do not decode. | |
const uint32_t | Exiv2::Internal::Tag::none = 0x10000 |
Dummy tag. | |
const uint32_t | Exiv2::Internal::Tag::root = 0x20000 |
Special tag: root IFD. | |
const uint32_t | Exiv2::Internal::Tag::next = 0x30000 |
Special tag: next IFD. | |
const uint32_t | Exiv2::Internal::Tag::all = 0x40000 |
Special tag: all tags in a group. |