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:

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


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 * > Exiv2::Ifds
 A collection of TIFF directories (IFDs).

Functions

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

Variables

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

Detailed Description

Various classes used in a TIFF composite structure.

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

Generated on Sun Mar 18 21:36:54 2007 for Exiv2 by  doxygen 1.4.7