You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exiv2/doc/templates/getting-started.html.in

144 lines
6.3 KiB
HTML

__doctype__
<html>
__header2__
<body>
<div id="content">
__index1__
<h1>Getting started</h1>
<h2><a href="namespaces.html">Namespaces</a></h2>
<p>The <a href="index.html">Exiv2 library</a> is made up of all
elements defined in the <a href="namespaceExiv2.html">Exiv2
namespace</a>. The Action and Util namespaces are only used by the
Exiv2 command line utility.</p>
<h2><a href="classes.html">Classes</a></h2>
<p>The top-level class of the Exiv2 library is
<a class="el" href="classExiv2_1_1Image.html">Exiv2::Image</a>
(don't let the components diagram below mislead you). Exiv2::Image
defines the interface to access various image metadata. Derived from
19 years ago
Exiv2::Image are the implementations of different image formats. Most
applications will use
<a class="el" href="classExiv2_1_1ImageFactory.html">Exiv2::ImageFactory</a>
to access images in files or memory, in which case the image format
is transparent to them.</p>
<p>Exif and IPTC metadata is manipulated through the classes
<a class="el" href="classExiv2_1_1ExifData.html">Exiv2::ExifData</a>
and <a class="el" href="classExiv2_1_1IptcData.html">Exiv2::IptcData</a>.
They hold a container of Exif and IPTC metadata, respectively, and define
related methods to access and manipulate the metadata. The containers hold
objects derived from
<a class="el" href="classExiv2_1_1Metadatum.html">Exiv2::Metadatum</a>.
21 years ago
Interface class Exiv2::Metadatum defines methods to access the
19 years ago
information of one Exif tag or IPTC dataset. It models the tag data as
a key and value pair.
The abstract base class
<a class="el" href="classExiv2_1_1Key.html">Exiv2::Key</a> defines the
19 years ago
interface for a key. Concrete keys implement Exif and IPTC keys.
The abstract base class
<a class="el" href="classExiv2_1_1Value.html">Exiv2::Value</a> defines
the interface to access tag information, from which concrete values are
derived. The actual value used in a metadatum depends on the type of
19 years ago
the Exif tag or IPTC dataset. It is usually determined when the Exif metadata
is read from an image. It is also possible to manually create a Value and
together with a key add it to an ExifData or IptcData container.</p>
Top-level Exiv2 classes to access XMP metadata are
<a class="el" href="classExiv2_1_1XmpData.html">Exiv2::XmpData</a>,
<a class="el" href="classExiv2_1_1Xmpdatum.html">Exiv2::Xmpdatum</a>
and <a class="el" href="classExiv2_1_1XmpKey.html">Exiv2::XmpKey</a>.
They work similar to the corresponding Exif and IPTC classes.
The property-repository is <a class="el" href="classExiv2_1_1XmpProperties.html">Exiv2::XmpProperties</a>.
In addition to the expected new members, class
<a class="el" href="classExiv2_1_1Image.html">Exiv2::Image</a>
also has an interface to access the raw XMP packet.
All XMP value types are supported: Simple types, structures,
arrays, property qualifiers and language alternatives.
XMP properties are accessed through keys of the form
"Xmp.&lt;Prefix&gt;.&lt;PropertyPath&gt;", where &lt;Prefix&gt; is the preferred
(or rather, registered) prefix for a schema namespace and
&lt;PropertyPath&gt; is the path of the XMP node. In its most basic
form, to address simple properties, &lt;PropertyPath&gt; is the name
of the property. In general, &lt;PropertyPath&gt; can be used to
address any XMP node, including array items, structure fields
qualifiers and deeply nested properties.
Any properties in known namespaces are supported and additional
namespaces can be registered.
The specialized Exiv2 values
<a class="el" href="classExiv2_1_1XmpTextValue.html">Exiv2::XmpTextValue</a>,
<a class="el" href="classExiv2_1_1XmpArrayValue.html">Exiv2::XmpArrayValue</a>
and <a class="el" href="classExiv2_1_1LangAltValue.html">Exiv2::LangAltValue</a> are
provided to simplify the use of XMP properties.
Note: Unlike Exif and IPTC tags, XMP properties do not have
a tag number.
<h2><a href="examples.html">Examples</a></h2>
21 years ago
<p>There are several simple examples that demonstrate the basic use of Exiv2
functionality: <a href="exifprint_8cpp-example.html">Exifprint</a>
shows how the Exif data of an image can be read and written to the screen.
<a href="iptcprint_8cpp-example.html">Iptcprint</a> is a similar
19 years ago
example to print IPTC data.
<a href="addmoddel_8cpp-example.html">Addmoddel</a> shows how to
add, modify and delete Exif metadata.
<a href="exifcomment_8cpp-example.html">Exifcomment</a> shows how to
set the exif comment of an image.
<a href="xmpsample_8cpp-example.html">Xmpsample.cpp</a> contains examples
of how to set various types of XMP properties.<br>
For more real-world code have a look at the implementation of the
different actions of the Exiv2 utility (actions.cpp).</p>
<h2><a href="makernote.html">Makernotes</a></h2>
<p>Exif Makernote data can be accessed through ExifData in the same
way as the standard Exif tags. In other words, for each entry of a
known Makernote, there is a corresponding Metadatum in the ExifData
container. The abstract base class
<a class="el" href="classExiv2_1_1MakerNote.html">Exiv2::MakerNote</a> defines
the Makernote interface. Subclass
<a class="el" href="classExiv2_1_1IfdMakerNote.html">Exiv2::IfdMakerNote</a>
models makernotes encoded in IFD format.
<a href="classExiv2_1_1MakerNote.html#_details">Implementing a new
21 years ago
IFD makernote</a> is straightforward. Implementing a new makernote that is not
21 years ago
encoded in IFD format however, is more difficult. Please
<a href="mailto:ahuggel@gmx.net"> contact me</a> if you have such a
makernote specification and would like assistance adding it to Exiv2.</p>
21 years ago
<h2><a class="anchor">IFD (Image File Directory)</a></h2>
<p><a class="el" href="classExiv2_1_1Ifd.html">Exiv2::Ifd</a> is a generic
low-level class that models an image file directory as defined by TIFF
and used in the Exif standard. Exiv2::Ifd could be used to implement
read only as well as read/write access to Exif (or TIFF) data without
the overhead (and convenience) of Exiv2::ExifData.</p>
21 years ago
<h2><a class="anchor">Components</a></h2>
21 years ago
<p>The picture below shows the components that make up the Exiv2
library and how they depend on each other. Component names are the
same as the basenames of their source files. Each component has its
own header and source files.</p>
<center>
<h3><a class="anchor">Exiv2 Components Diagram</a></h3>
20 years ago
<p><img src="../include/exiv2-components.png" width="660" height="543" alt="Exiv2 components diagram"></p>
</center>
<p>&nbsp;</p>
</div>
<!-- closes content -->
</body>
</html>