tiffcomposite.hpp File Reference

Various classes used in a TIFF composite structure. More...

#include "image.hpp"
#include "tifffwd.hpp"
#include "types.hpp"
#include <iosfwd>
#include <vector>
#include <string>
#include <cassert>

Include dependency graph for tiffcomposite.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Namespaces

namespace  Exiv2
namespace  Exiv2::Group
namespace  Exiv2::Tag

Classes

class  Exiv2::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). More...
struct  Exiv2::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::TiffStructure::Key
 Search key for TIFF structure. More...
struct  Exiv2::TiffDecoderInfo
 TIFF decoder table for functions to decode special cases. More...
struct  Exiv2::TiffDecoderInfo::Key
 Search key for TIFF decoder structures. More...
class  Exiv2::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::TiffEntry
 A standard TIFF IFD entry. More...
class  Exiv2::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. This component is used, e.g., for Exif.Thumbnail.JPEGInterchangeFormat for which the size is provided in Exif.Thumbnail.JPEGInterchangeFormatLength. More...
class  Exiv2::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::TiffDirectory
 This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More...
class  Exiv2::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::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::TiffArrayEntry
 Composite to model an array of tags, each consisting of one unsigned short value. Canon and Minolta makernotes use such tags. The elements of this component are usually of type TiffArrayElement. More...
class  Exiv2::TiffArrayElement
 Element of a TiffArrayEntry. The value is exactly one unsigned short component. Canon and Minolta makernotes use arrays of such elements. More...

Typedefs

typedef std::vector< TiffDirectory * > Ifds
 A collection of TIFF directories (IFDs).

Functions

const char * tiffGroupName (uint16_t group)
 Return the group name for a group.
TiffComponent::AutoPtr newTiffDirectory (uint16_t tag, const TiffStructure *ts)
 Function to create and initialize a new TIFF directory.
TiffComponent::AutoPtr newTiffSubIfd (uint16_t tag, const TiffStructure *ts)
 Function to create and initialize a new TIFF sub-directory.
TiffComponent::AutoPtr newTiffMnEntry (uint16_t tag, const TiffStructure *ts)
 Function to create and initialize a new TIFF makernote entry.
template<uint16_t elSize>
TiffComponent::AutoPtr newTiffArrayEntry (uint16_t tag, const TiffStructure *ts)
 Function to create and initialize a new array entry.
template<TypeId typeId, ByteOrder byteOrder>
TiffComponent::AutoPtr 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 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 newTiffThumbSize (uint16_t tag, const TiffStructure *ts)
 Function to create and initialize a new TIFF entry for a thumbnail (size).

Variables

const uint16_t none = 0
 Dummy group.
const uint16_t ifd0 = 1
 Exif IFD0.
const uint16_t ifd1 = 2
 Thumbnail IFD.
const uint16_t exif = 3
 Exif IFD.
const uint16_t gps = 4
 GPS IFD.
const uint16_t iop = 5
 Interoperability IFD.
const uint16_t sub0_0 = 6
 Tiff SubIFD 0 in IFD0.
const uint16_t sub0_1 = 7
 Tiff SubIFD 1 in IFD0.
const uint16_t sub0_2 = 8
 Tiff SubIFD 2 in IFD0.
const uint16_t sub0_3 = 9
 Tiff SubIFD 3 in IFD0.
const uint16_t mn = 256
 Makernote.
const uint16_t ignr = 511
 Read but do not decode.
const uint32_t none = 0x10000
 Dummy tag.
const uint32_t root = 0x20000
 Special tag: root IFD.
const uint32_t next = 0x30000
 Special tag: next IFD.
const uint32_t all = 0x40000
 Special tag: all tags in a group.

Detailed Description

Various classes used in a TIFF composite structure.

Version:
Rev
837
Author:
Andreas Huggel (ahu) ahuggel@gmx.net
Date:
11-Apr-06, ahu: created

Generated on Wed Dec 20 19:36:48 2006 for Exiv2 by  doxygen 1.3.9.1