<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
  <title>Under the Hood</title>
<link rel=stylesheet type='text/css' href='style.css' title='Style'>
<style type="text/css">
<!--
pre         { margin: 0 }
code        { white-space: nowrap }
ol.index    { margin: 0; padding: 0 0 0 2em }
-->
</style>
</head>
<body>
<div class='index'>
<a href="#conversions">Value Conversions</a>
</div>

<h1 class='up'>"Under the Hood" of ExifTool</h1>

<p>This page is a work in progress, and will be used to explain some of the details
about how ExifTool works.</p>

<a name="conversions"></a>
<h2>Value Conversions</h2>
<p>When ExifTool reads or writes the value of a tag, there are 3 separate
conversions applied to each value, resulting in 4 different levels for the value
of each tag.  By default, users interact only with the human-readable
("<b>PrintConv</b>") value, but other levels are exposed through various exiftool
options:</p>

<ol start=3><li>The "<b>PrintConv</b>" value is the final human-readable value
which has been converted for display.  Often, the "PrintConv" conversion will
translate numbers into words for better readability.  The <code>-lang</code>
option is used to specify the language for this conversion.</li></ol>

<ol start=2><li>The "<b>ValueConv</b>" value is a numerical value, suitable for
use in calculations.  Typically, this value is converted to standard units (ie.
degrees, meters, or seconds) to make calculations simpler.  This value is
returned for all tags when the <code>-n</code> option is used, or for individual
tags by suffixing the tag name with a <code>#</code> character.</li></ol>

<ol start=1><li>The "<b>Raw</b>" value is the value after initial formatting is
applied to the binary data from the file.  Most tags have no separate "ValueConv"
conversion, so for these tags the "Raw" value is the same as the "ValueConv"
value.  This value may be seen by using the <code>-v</code> option.</li></ol>

<ol start=0><li>The "<b>Binary</b>" value is actual binary data stored in the
file. This data is displayed in hexadecimal form with the <code>-v3</code>
option, or by using the <code>-htmlDump</code> feature.  Note that this value is
not related to the <code>-b</code> (<code>-binary</code>) option, which actually
returns the "ValueConv" value and is used for tags where this value can not be
presented in a simple text format.</li></ol>

<p>Below are some examples of these different values for a few tags:</p>

<blockquote><table class=norm>
<tr><th>Tag</th><th>3.&nbsp;PrintConv</th><th>2.&nbsp;ValueConv</th><th>1.&nbsp;Raw</th><th>0.&nbsp;Binary</th></tr>
<tr align='center'><td>Orientation</td><td>Horizontal (normal)</td><td>1</td><td>1</td><td><pre>00 01</pre></td></tr>
<tr align='center'><td>GPSLatitude</td><td>45 deg 20' 11.00"</td><td>45.3363888888889</td><td>45 20 11<br>(45/1 20/1 11/1)</td>
  <td><pre>00 00 00 2d 00 00 00 01<br>00 00 00 14 00 00 00 01<br>00 00 00 0b 00 00 00 01</pre></td></tr>
<tr align='center'><td>ExposureTime</td><td>1/30</td><td>0.03333333333</td><td>0.03333333333<br>(1/30)</td>
  <td><pre>00 00 00 01 00 00 00 1e</pre></td></tr>
<tr align='center'><td>ShutterSpeedValue</td><td>1/30</td><td>0.0333333334629176</td><td>4.90689059<br>(19868/4049)</td>
  <td><pre>00 00 4d 9c 00 00 0f d1</pre></td></tr>
</table></blockquote>
<hr>
<i>Last revised Oct 10, 2009</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>