|
|
__doctype__
|
|
|
<html lang="en">
|
|
|
__header4__
|
|
|
|
|
|
<body>
|
|
|
__navbar__
|
|
|
|
|
|
<div class="container">
|
|
|
<div class="page-header">
|
|
|
<h1>Library examples</h1>
|
|
|
</div>
|
|
|
|
|
|
<h2 id="example1">Example 1: exifprint.cpp</h2>
|
|
|
|
|
|
<p class="lead">This is a very simple program to read and print the Exif metadata
|
|
|
of an image. Go to <a title="Sample usage of high-level metadata operations"
|
|
|
href="#example2-output">Example2</a> to see how the
|
|
|
output looks like.</p>
|
|
|
|
|
|
__example1__
|
|
|
|
|
|
<p> </p>
|
|
|
<hr>
|
|
|
<h2 id="example2">Example 2: addmoddel.cpp</h2>
|
|
|
|
|
|
<p class="lead">Sample usage of high-level Exiv2 library calls to add, modify and delete Exif metadata.</p>
|
|
|
|
|
|
__example2__
|
|
|
|
|
|
<p> </p>
|
|
|
<div class="row">
|
|
|
<div class="col-md-8">
|
|
|
<p id="example2-output">Using the print function from
|
|
|
<a title="Reading and printing the Exif metadata of an image"
|
|
|
href="#example1">Example1</a> shows the
|
|
|
following Exif tags in the image. Note the tag
|
|
|
<code>Exif.Image.ExifTag</code>: It is required by the Exif standard because
|
|
|
the metadata contains an <code>Exif.Photo.*</code> tag and is automatically
|
|
|
added by Exiv2 to ensure that the Exif structure is valid.</p>
|
|
|
|
|
|
<pre>
|
|
|
<span class="stringliteral">$ exifprint img_2158.jpg</span>
|
|
|
Exif.Image.Model 0x0110 Ascii 7 Test 1
|
|
|
Exif.Image.SamplesPerPixel 0x0115 Short 1 162
|
|
|
Exif.Image.XResolution 0x011a SLong 1 -2
|
|
|
Exif.Image.YResolution 0x011b SRational 1 -2/3
|
|
|
Exif.Image.ExifTag 0x8769 Long 1 89
|
|
|
Exif.Photo.DateTimeOriginal 0x9003 Ascii 20 2000:12:31 23:59:59
|
|
|
</pre>
|
|
|
|
|
|
</div><!-- /.col-md-8 -->
|
|
|
<div class="col-md-4">
|
|
|
<img src="include/img_2158.jpg" class="img-responsive img-rounded center-block" title="img_2158.jpg (28036 Bytes)" alt="Image containing the Exif metadata from example 2">
|
|
|
<p class="text-center text-muted"><em>Image with the Exif metadata from example 2</em></p>
|
|
|
</div><!-- /.col-md-4 -->
|
|
|
</div><!-- /.row -->
|
|
|
|
|
|
<hr>
|
|
|
<h2 id="example3">Example 3: iptcprint.cpp</h2>
|
|
|
|
|
|
<p class="lead">This is a very simple program to read and print the IPTC metadata of an image.</p>
|
|
|
|
|
|
__example3__
|
|
|
|
|
|
<p> </p>
|
|
|
<div class="row">
|
|
|
<div class="col-md-9">
|
|
|
<pre>
|
|
|
<span class="stringliteral">$ iptcprint smiley1.jpg</span>
|
|
|
Iptc.Application2.Headline 0x0069 String 17 The headline I am
|
|
|
Iptc.Application2.Keywords 0x0019 String 19 Yet another keyword
|
|
|
Iptc.Application2.DateCreated 0x0037 Date 8 2004-08-03
|
|
|
Iptc.Application2.Urgency 0x000a String 5 very!
|
|
|
Iptc.Envelope.ModelVersion 0x0000 Short 1 42
|
|
|
Iptc.Envelope.TimeSent 0x0050 Time 11 14:41:00-05:00
|
|
|
Iptc.Application2.RasterizedCaption 0x007d Undefined 8 230 42 34 2 90 84 23 146
|
|
|
Iptc.0x0009.0x0001 0x0001 String 9 Who am I?
|
|
|
</pre>
|
|
|
</div><!-- /.col-md-9 -->
|
|
|
<div class="col-md-3">
|
|
|
<img src="include/smiley1.jpg" id="smiley1" class="img-responsive img-thumbnail center-block" title="smiley1.jpg (2909 Bytes)" alt="Sample image with the IPTC data from example 3">
|
|
|
<p class="text-center text-muted"><em>Image with the IPTC data<br>from examples 3 & 4</em></p>
|
|
|
</div><!-- /.col-md-3 -->
|
|
|
</div><!-- /.row -->
|
|
|
|
|
|
<hr>
|
|
|
<h2 id="example4">Example 4: iptceasy.cpp</h2>
|
|
|
|
|
|
<p class="lead">This shows the quickest way to access, set or modify IPTC metadata, which is similar to how <code>std::map</code> works.
|
|
|
The sample program writes the IPTC data to a file. <a title="Reading and printing the IPTC metadata of an image"
|
|
|
href="#smiley1">Example 3</a>, above, has the image with this IPTC data.</p>
|
|
|
|
|
|
__example4__
|
|
|
|
|
|
<p> </p>
|
|
|
<hr>
|
|
|
<h2 id="example5">Example 5: xmpsample.cpp</h2>
|
|
|
|
|
|
<p class="lead">Sample (test) usage of high level XMP classes. This example shows various aspects
|
|
|
of setting XMP metadata, including complex types. See also <a href="#example2">Example 2: addmoddel.cpp</a></p>
|
|
|
|
|
|
__example5__
|
|
|
|
|
|
<p> </p>
|
|
|
<p>The resulting XMP Exiv2 metadata and XMP packet is below.
|
|
|
The same can be achieved with a set of <a href="sample.html#xmp">commands</a>
|
|
|
to the Exiv2 command line tool.</p>
|
|
|
|
|
|
<div id="example5-output"><pre>
|
|
|
<span class="stringliteral">$ xmpsample</span>
|
|
|
Xmp.dc.source XmpText 13 xmpsample.cpp
|
|
|
Xmp.dc.subject XmpBag 2 Palmtree, Rubbertree
|
|
|
Xmp.dc.title LangAlt 2 lang="de-DE" Sonnenuntergang am Strand, lang="en-US" Sunset on the beach
|
|
|
Xmp.dc.one XmpText 2 -1
|
|
|
Xmp.dc.two XmpText 6 3.1415
|
|
|
Xmp.dc.three XmpText 3 5/7
|
|
|
Xmp.dc.four XmpText 3 255
|
|
|
Xmp.dc.five XmpText 3 256
|
|
|
Xmp.dc.six XmpText 5 false
|
|
|
Xmp.dc.seven XmpText 5 Seven
|
|
|
Xmp.dc.format XmpText 10 image/jpeg
|
|
|
Xmp.dc.creator XmpSeq 3 1) The first creator, 2) The second creator, 3) And another one
|
|
|
Xmp.dc.description LangAlt 2 lang="x-default" Hello, World, lang="de-DE" Hallo, Welt
|
|
|
Xmp.tiff.ImageDescription LangAlt 2 lang="x-default" TIFF image description, lang="de-DE" TIFF Bildbeschreibung
|
|
|
Xmp.xmpDM.videoFrameSize/stDim:w XmpText 2 16
|
|
|
Xmp.xmpDM.videoFrameSize/stDim:h XmpText 1 9
|
|
|
Xmp.xmpDM.videoFrameSize/stDim:unit XmpText 4 inch
|
|
|
Xmp.dc.publisher XmpBag 1 James Bond
|
|
|
Xmp.dc.publisher[1]/?ns:role XmpText 12 secret agent
|
|
|
Xmp.dc.creator[2]/?ns:role XmpText 10 programmer
|
|
|
Xmp.xmpBJ.JobRef XmpText 0 type="Bag"
|
|
|
Xmp.xmpBJ.JobRef[1]/stJob:name XmpText 14 Birthday party
|
|
|
Xmp.xmpBJ.JobRef[1]/stJob:role XmpText 12 Photographer
|
|
|
Xmp.xmpBJ.JobRef[2]/stJob:name XmpText 16 Wedding ceremony
|
|
|
Xmp.xmpBJ.JobRef[2]/stJob:role XmpText 8 Best man
|
|
|
|
|
|
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
|
|
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.1.1-Exiv2">
|
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
|
<rdf:Description rdf:about=""
|
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
|
xmlns:ns="myNamespace/"
|
|
|
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
|
|
|
xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/"
|
|
|
xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
|
|
|
xmlns:xapBJ="http://ns.adobe.com/xap/1.0/bj/"
|
|
|
xmlns:stJob="http://ns.adobe.com/xap/1.0/sType/Job#"
|
|
|
dc:source="xmpsample.cpp"
|
|
|
dc:one="-1"
|
|
|
dc:two="3.1415"
|
|
|
dc:three="5/7"
|
|
|
dc:four="255"
|
|
|
dc:five="256"
|
|
|
dc:six="false"
|
|
|
dc:seven="Seven"
|
|
|
dc:format="image/jpeg">
|
|
|
<dc:subject>
|
|
|
<rdf:Bag>
|
|
|
<rdf:li>Palmtree</rdf:li>
|
|
|
<rdf:li>Rubbertree</rdf:li>
|
|
|
</rdf:Bag>
|
|
|
</dc:subject>
|
|
|
<dc:title>
|
|
|
<rdf:Alt>
|
|
|
<rdf:li xml:lang="de-DE">Sonnenuntergang am Strand</rdf:li>
|
|
|
<rdf:li xml:lang="en-US">Sunset on the beach</rdf:li>
|
|
|
</rdf:Alt>
|
|
|
</dc:title>
|
|
|
<dc:creator>
|
|
|
<rdf:Seq>
|
|
|
<rdf:li>1) The first creator</rdf:li>
|
|
|
<rdf:li rdf:parseType="Resource">
|
|
|
<rdf:value>2) The second creator</rdf:value>
|
|
|
<ns:role>programmer</ns:role>
|
|
|
</rdf:li>
|
|
|
<rdf:li>3) And another one</rdf:li>
|
|
|
</rdf:Seq>
|
|
|
</dc:creator>
|
|
|
<dc:description>
|
|
|
<rdf:Alt>
|
|
|
<rdf:li xml:lang="x-default">Hello, World</rdf:li>
|
|
|
<rdf:li xml:lang="de-DE">Hallo, Welt</rdf:li>
|
|
|
</rdf:Alt>
|
|
|
</dc:description>
|
|
|
<dc:publisher>
|
|
|
<rdf:Bag>
|
|
|
<rdf:li rdf:parseType="Resource">
|
|
|
<rdf:value>James Bond</rdf:value>
|
|
|
<ns:role>secret agent</ns:role>
|
|
|
</rdf:li>
|
|
|
</rdf:Bag>
|
|
|
</dc:publisher>
|
|
|
<tiff:ImageDescription>
|
|
|
<rdf:Alt>
|
|
|
<rdf:li xml:lang="x-default">TIFF image description</rdf:li>
|
|
|
<rdf:li xml:lang="de-DE">TIFF Bildbeschreibung</rdf:li>
|
|
|
</rdf:Alt>
|
|
|
</tiff:ImageDescription>
|
|
|
<xmpDM:videoFrameSize
|
|
|
stDim:w="16"
|
|
|
stDim:h="9"
|
|
|
stDim:unit="inch"/>
|
|
|
<xapBJ:JobRef>
|
|
|
<rdf:Bag>
|
|
|
<rdf:li
|
|
|
stJob:name="Birthday party"
|
|
|
stJob:role="Photographer"/>
|
|
|
<rdf:li
|
|
|
stJob:name="Wedding ceremony"
|
|
|
stJob:role="Best man"/>
|
|
|
</rdf:Bag>
|
|
|
</xapBJ:JobRef>
|
|
|
</rdf:Description>
|
|
|
</rdf:RDF>
|
|
|
</x:xmpmeta>
|
|
|
<?xpacket end="w"?>
|
|
|
</pre></div>
|
|
|
|
|
|
</div><!-- /.container -->
|
|
|
__footer__
|
|
|
__bootstrap__
|
|
|
|
|
|
<!-- Custom script to bootstrap (augment) Doxygen-generated HTML -->
|
|
|
<script type="text/javascript" src="doc/doxy-boot.js"></script>
|
|
|
|
|
|
</body>
|
|
|
</html>
|