



<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8"  />
  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
  <title>ImageMagick - Format and Print Image Properties</title>
  <meta name="application-name" content="ImageMagick" />
  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
  <meta name="application-url" content="https://imagemagick.org" />
  <meta name="generator" content="PHP" />
  <meta name="keywords" content="format, print, image, properties, image converter, image resizer, image editor, photo editor, jpg converter, png converter, tiff converter, vector images, online, free, swiss army" />
  <meta name="rating" content="GENERAL" />
  <meta name="robots" content="INDEX, FOLLOW" />
  <meta name="generator" content="ImageMagick Studio LLC" />
  <meta name="author" content="ImageMagick Studio LLC" />
  <meta name="revisit-after" content="2 DAYS" />
  <meta name="resource-type" content="document" />
  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
  <meta name="distribution" content="Global" />
  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
  <meta property='og:url' content='../' />
  <meta property='og:title' content='ImageMagick' />
  <meta property='og:image' content='../images/logo.png' />
  <meta property='og:type' content='website' />
  <meta property='og:site_name' content='ImageMagick' />
  <meta property='og:description' content="Create, Edit, Compose, or Convert Bitmap Images" />
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
  <link href="../www/escape.html" rel="canonical" />
  <link href="../images/wand.png" rel="icon" />
  <link href="../images/wand.ico" rel="shortcut icon" />
  <link href="assets/magick.css" rel="stylesheet" />
</head>
<body>
  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="navbar-collapse collapse" id="navbarsMagick" style="">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item ">
        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item ">
        <a class="nav-link" href="download.html">Download</a>
      </li>
      <li class="nav-item ">
        <a class="nav-link" href="command-line-tools.html">Tools</a>
      </li>
      <li class="nav-item ">
        <a class="nav-link" href="command-line-processing.html">Command-line</a>
      </li>
      <li class="nav-item ">
        <a class="nav-link" href="resources.html">Resources</a>
      </li>
      <li class="nav-item ">
        <a class="nav-link" href="develop.html">Develop</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
      </li>
    </ul>
    </div>
    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
      <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
    </form>
  </nav>
  <div class="container">
   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
         style="display:block"
         data-ad-client="ca-pub-3129977114552745"
         data-ad-slot="6345125851"
         data-full-width-responsive="true"
         data-ad-format="horizontal"></ins>
    <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
    </script>

  </div>

  <main class="container">
    <div class="magick-template">
<div class="magick-header">
<p class="lead magick-description">There are copious amounts of extra data associated with images (metadata), beyond the actual image pixels. This metadata can be useful, either for display, or for various calculations, or in modifying the behavior of later image processing operations.  You can utilize percent escapes in a number of options, for example in <a href="command-line-options.html#format_identify_">-format</a> or in montage <a href="command-line-options.html#label" >-label</a>, to print various properties and other settings associated with an image.</p>

<div class="table-responsive" style="font-size:87.5% !important;">
<table class="table table-striped">
<tr>
    <td><b>Profile Data</b></td>
    <td>Such as EXIF: data, containing focal lengths, exposures, dates, and in
        come cases GPS locations.
    </td></tr>
<tr>
    <td><b>Attributes</b></td>
    <td>These are directly involved with image data, and more commonly
        modified as part of normal image processing.  These include
        width, height, depth, image type (colorspace), timing delays, and
        background color. Most specific percent escapes is to access this
        information.
    </td></tr>
<tr>
    <td><b>Properties</b></td>
    <td>These are stored as a table of free form strings, and are (if possible)
        saved with the image (especially in MIFF and PNG image file formats).
        These include: Labels, Captions, Comments.
    </td></tr>
<tr>
    <td><b>Artifacts</b></td>
    <td>These are various operational (expert) settings that are saved for
        use by various operators, or by the user for future use.  It is just
        a table of free-form strings.  They are not saved with the image when
        written.  See Artifacts and Options below for details.
    </td></tr>
<tr>
    <td><b>Options</b></td>
    <td>Also operational (expert) settings that are saved for
        use by various operators, but are set globally for use by a whole
        image list (also not saved).  See Artifacts and Options below.
    </td></tr>
</table></div>

<h3>Percent Escape Handling</h3>

<p>If you request a percent escape such as <code>%[key]</code> the setting
is looked for in the following order until the first match has been
found...</p>

<ol>
<li>Handle special prefixes such as 'artifact:' 'option:' 'exif:', or
    'fx:'.  This includes and calculations and or globs of those prefixes such
    as 'exif:*' or 'artifact:*' (see below).</li>

<li>If <code>key</code> contains a glob pattern (but no known prefix)
    search free-form properties table.</li>

<li>If <code>key</code> is a special image 'attribute' name (see list
    above) return the associated or calculated image attribute.</li>

<li>Search for setting as a free-form 'property'</li>
<li>Search for setting as a free-form 'artifact'</li>
<li>Search for setting as a free-form 'option'</li>

<li>Replace escape with empty string, and perhaps produce a warning.</li>
</ol>

<p>Remember, all long name forms of percent escapes are handled in a is case
insensitive manner. </p>

<p>You can now access the Artifact and Option
free-form string tables directly, allowing you to override the above sequence,
and avoid accessing an attribute or property of the same name.</p>

<pre class="highlight"><code>%[artifact:<var>setting</var>]
%[option:<var>setting</var>]
</code></pre>

<p>Escape handling requires access to an image container.  If none are available, a blank image is created to ensure the expression can be processed and a value returned.  For example, <code>magick -print "%[fx:.8765/3.14]" null: null:</code>.</p>

<h3>Single Letter Attribute Percent Escapes</h3>

<p>Here are common single letter escapes (short form) is used to report the most
common attributes and properties of an image, such as: the image filename
filename, type, width, height. </p>

<div class="table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-striped">
  <tr>
    <td>\n</td>
    <td>newline</td>
  </tr>
  <tr>
    <td>\r</td>
    <td>carriage return</td>
  </tr>
  <tr>
    <td>&lt;</td>
    <td>less-than character.</td>
  </tr>
  <tr>
    <td>&gt;</td>
    <td>greater-than character.</td>
  </tr>
  <tr>
    <td>&amp;</td>
    <td>ampersand character.</td>
  </tr>
  <tr>
    <td>%%</td>
    <td>a percent sign</td>
  </tr>
  <tr>
    <td>%b</td>
    <td>file size of image read in (use <a href="escape.html#precision">-precision</a> 16 to force results in B)</td>
  </tr>
  <tr>
    <td>%c</td>
    <td>comment meta-data property</td>
  </tr>
  <tr>
    <td>%d</td>
    <td>directory component of path</td>
  </tr>
  <tr>
    <td>%e</td>
    <td>filename extension or suffix</td>
  </tr>
  <tr>
    <td>%f</td>
    <td>filename (including suffix)</td>
  </tr>
  <tr>
    <td>%g</td>
    <td>layer canvas page geometry   (equivalent to "%Wx%H%X%Y")</td>
  </tr>
  <tr>
    <td>%h</td>
    <td>current image height in pixels</td>
  </tr>
  <tr>
    <td>%i</td>
    <td>image filename (note: becomes output filename for "info:")</td>
  </tr>
  <tr>
    <td>%k</td>
    <td>CALCULATED: number of unique colors</td>
  </tr>
  <tr>
    <td>%l</td>
    <td>label meta-data property</td>
  </tr>
  <tr>
    <td>%m</td>
    <td>image file format (file magic)</td>
  </tr>
  <tr>
    <td>%n</td>
    <td>number of images in current image sequence</td>
  </tr>
  <tr>
    <td>%o</td>
    <td>output filename  (used for delegates)</td>
  </tr>
  <tr>
    <td>%p</td>
    <td>index of image in current image list</td>
  </tr>
  <tr>
    <td>%q</td>
    <td>quantum depth (compile-time constant)</td>
  </tr>
  <tr>
    <td>%r</td>
    <td>image class and colorspace</td>
  </tr>
  <tr>
    <td>%s</td>
    <td>scene number (from input unless re-assigned)</td>
  </tr>
  <tr>
    <td>%t</td>
    <td>filename without directory or extension (suffix)</td>
  </tr>
  <tr>
    <td>%u</td>
    <td>unique temporary filename (used for delegates)</td>
  </tr>
  <tr>
    <td>%w</td>
    <td>current width in pixels</td>
  </tr>
  <tr>
    <td>%x</td>
    <td>x resolution (density)</td>
  </tr>
  <tr>
    <td>%y</td>
    <td>y resolution (density)</td>
  </tr>
  <tr>
    <td>%z</td>
    <td>image depth (as read in unless modified, image save depth)</td>
  </tr>
  <tr>
    <td>%A</td>
    <td>image transparency channel enabled (true/false)</td>
  </tr>
  <tr>
    <td>%B</td>
    <td>file size of image read in bytes</td>
  </tr>
  <tr>
    <td>%C</td>
    <td>image compression type</td>
  </tr>
  <tr>
    <td>%D</td>
    <td>image GIF dispose method</td>
  </tr>
  <tr>
    <td>%G</td>
    <td>original image size (%wx%h; before any resizes)</td>
  </tr>
  <tr>
    <td>%H</td>
    <td>page (canvas) height</td>
  </tr>
  <tr>
    <td>%M</td>
    <td>Magick filename (original file exactly as given,  including read mods)</td>
  </tr>
  <tr>
    <td>%O</td>
    <td>page (canvas) offset ( = %X%Y )</td>
  </tr>
  <tr>
    <td>%P</td>
    <td>page (canvas) size ( = %Wx%H )</td>
  </tr>
  <tr>
    <td>%Q</td>
    <td>image compression quality ( 0 = default )</td>
  </tr>
  <tr>
    <td>%S</td>
    <td>?? scenes ??</td>
  </tr>
  <tr>
    <td>%T</td>
    <td>image time delay (in centi-seconds)</td>
  </tr>
  <tr>
    <td>%U</td>
    <td>image resolution units</td>
  </tr>
  <tr>
    <td>%W</td>
    <td>page (canvas) width</td>
  </tr>
  <tr>
    <td>%X</td>
    <td>page (canvas) x offset (including sign)</td>
  </tr>
  <tr>
    <td>%Y</td>
    <td>page (canvas) y offset (including sign)</td>
  </tr>
  <tr>
    <td>%Z</td>
    <td>unique filename (used for delegates)</td>
  </tr>
  <tr>
    <td>%@</td>
    <td>CALCULATED: trim bounding box (without actually trimming)</td>
  </tr>
  <tr>
    <td>%#</td>
    <td>CALCULATED: 'signature' hash of image values</td>
  </tr>
</table></div>

<p>Here is a sample command and its output for an image with filename
<code>bird.miff</code> and whose width is 512 and height is 480.</p>

<pre class="highlight"><code>-> identify -format "%m:%f %wx%h" bird.miff
MIFF:bird.miff 512x480
</code></pre>

<p>Note that all single letter percent escapes can also be used using long
form (from IM version 6.7.6-9, see next). For example <code>%[f]</code> is
equivalent to the <code>%f</code> short form. </p>

<p><b>WARNING</b>: short form percent escapes are NOT performed when the percent
is after a number.  For example,  <code>10%x10</code> does not expand the
<code>%x</code> as a percent escape.  If you specifically want to expand the
'x', use the long form which overrides this special case. EG:
<code>10%[x]10</code>. </p>

<p>Also be warned that calculated attributes can take some time to generate,
especially for large images.</p>

<h3>Long Form Attribute Percent Escapes</h3>

<p>In addition to the above specific and calculated attributes are recognized
when enclosed in braces (long form):</p>

<div class="table-responsive" style="font-size:87.5% !important;">
<table class="table table-sm table-striped">
  <tr>
    <td>%[basename]</td>
    <td>base filename, no suffixes (as %t)</td>
  </tr>
  <tr>
    <td>%[bit-depth]</td>
    <td>Actual bit-depth of the pixel data</td>
  </tr>
  <tr>
    <td>%[bounding-box]</td>
    <td>upper left and lower right corners of the image bounding box</td>
  </tr>
  <tr>
    <td>%[caption]</td>
    <td>caption meta-data property</td>
  </tr>
   <tr>
    <td>%[caption:pointsize]</td>
    <td>returns the pointsize computed during caption: processing</td>
  </tr>
  <tr>
    <td>%[channels]</td>
    <td>??? channels in use - colorspace ???</td>
  </tr>
  <tr>
    <td>%[colors]</td>
    <td>Number of unique colors in the image (as of IM 7.0.3.8)</td>
  </tr>
  <tr>
    <td>%[colorspace]</td>
    <td>colorspace of Image Data (excluding transparency)</td>
  </tr>
  <tr>
    <td>%[compose]</td>
    <td> </td>
  </tr>
  <tr>
    <td>%[compression]</td>
    <td>image compression type</td>
  </tr>
  <tr>
    <td><a href="../www/convex-hull.html">%[convex-hull]</a></td>
    <td>points that form a convex hull around the foreground object.  Use <code><a href="escape.html#define">-define</a> convex-hull:background-color=<em>color</em></code> to identify the image background color.</td>
  </tr>
  <tr>
    <td>%[copyright]</td>
    <td>ImageMagick Copyright String</td>
  </tr>
  <tr>
    <td>%[depth]</td>
    <td>depth of image for write (as input unless changed)</td>
  </tr>
  <tr>
    <td>%[deskew:angle]</td>
    <td>The deskew angle in degrees of rotation</td>
  </tr>
  <tr>
    <td>%[directory]</td>
    <td>directory part of filename (as %d)</td>
  </tr>
  <tr>
    <td>%[distortion]</td>
    <td>how well an image resembles a reference image (<a href="command-line-options.html#compare" >-compare</a>)</td>
  </tr>
  <tr>
    <td>%[entropy]</td>
    <td>CALCULATED: entropy of the image</td>
  </tr>
  <tr>
    <td>%[extension]</td>
    <td>extension part of filename (as %e)</td>
  </tr>
  <tr>
    <td>%[gamma]</td>
    <td>value of image gamma</td>
  </tr>
  <tr>
    <td>%[group]</td>
    <td>??? window group ???</td>
  </tr>
  <tr>
    <td>%[height]</td>
    <td>original height of image (when it was read in)</td>
  </tr>
  <tr>
    <td>%[input]</td>
    <td> </td>
  </tr>
  <tr>
    <td>%[interlace]</td>
    <td>Image interlace mode (as of IM 7.0.3.8)</td>
  </tr>
  <tr>
    <td>%[kurtosis]</td>
    <td>CALCULATED: kurtosis statistic of image</td>
  </tr>
  <tr>
    <td>%[label]</td>
    <td>label meta-data property</td>
  </tr>
   <tr>
    <td>%[label:pointsize]</td>
    <td>returns the pointsize computed during label: processing</td>
  </tr>
  <tr>
    <td>%[magick]</td>
    <td>coder used to read image (not the file suffix)</td>
  </tr>
  <tr>
    <td>%[max]</td>
    <td>CALCULATED: maximum value statistic of image</td>
  </tr>
  <tr>
    <td>%[mean]</td>
    <td>CALCULATED: average value statistic of image</td>
  </tr>
  <tr>
    <td>%[min]</td>
    <td>CALCULATED: minimum value statistic of image</td>
  </tr>
  <tr>
    <td>%[opaque]</td>
    <td>CALCULATED: is image fully-opaque?</td>
  </tr>
  <tr>
    <td>%[orientation]</td>
    <td>image orientation</td>
  </tr>
  <tr>
    <td>%[page]</td>
    <td>Virtual canvas (page) geometry</td>
  </tr>
  <tr>
    <td>%[printsize.x]</td>
    <td>X printsize</td>
  </tr>
  <tr>
    <td>%[printsize.y]</td>
    <td>Y printsize</td>
  </tr>
  <tr>
    <td>%[profile:icc]</td>
    <td>ICC profile info</td>
  </tr>
  <tr>
    <td>%[profile:icm]</td>
    <td>ICM profile info</td>
  </tr>
  <tr>
    <td>%[profiles]</td>
    <td>list of any embedded profiles</td>
  </tr>
  <tr>
    <td>%[quality]</td>
    <td>Image quality value (as of IM 7.0.3.8)</td>
  </tr>
  <tr>
    <td>%[rendering-intent]</td>
    <td>Image rendering intent (as of IM 7.0.3.8)</td>
  </tr>
  <tr>
    <td>%[resolution.x]</td>
    <td>X density (resolution) without units</td>
  </tr>
  <tr>
    <td>%[resolution.y]</td>
    <td>Y density (resolution) without units</td>
  </tr>
  <tr>
    <td>%[scene]</td>
    <td>original scene number of image in input file</td>
  </tr>
  <tr>
    <td>%[size]</td>
    <td>original size of image (when it was read in)</td>
  </tr>
  <tr>
    <td>%[skewness]</td>
    <td>CALCULATED: skewness statistic of image</td>
  </tr>
  <tr>
    <td>%[standard-deviation]</td>
    <td>CALCULATED: standard deviation statistic of image</td>
  </tr>
  <tr>
    <td>%[type]</td>
    <td>CALCULATED: image type</td>
  </tr>
  <tr>
    <td>%[unique]</td>
    <td>unique temporary filename ???</td>
  </tr>
  <tr>
    <td>%[units]</td>
    <td>image resolution units</td>
  </tr>
  <tr>
    <td>%[version]</td>
    <td>Version Information of this running ImageMagick</td>
  </tr>
  <tr>
    <td>%[width]</td>
    <td>original width of image (when it was read in)</td>
  </tr>
  <tr>
    <td>%[zero]</td>
    <td>zero (unique filename for delegate use)</td>
  </tr>
</table></div>

<h3>Properties</h3>

<p>All other long forms of percent escapes (not single letter long form) are
handled in a case insensitive manner. Such escapes will attempt to look
up that name specific data sources. </p>

<p>The primary search space (if not a specific attribute listed above) is
a free-form property string.  Such strings are associated and saved with
images, and are typically set using either the <a href="command-line-options.html#set" >-set</a>
CLI option (or API equivalent), or from special convenience options
(such as <a href="command-line-options.html#label"
>-label</a>, <a href="command-line-options.html#comment"
>-comment</a>, <a href="command-line-options.html#caption"
>-caption</a>). </p>

<p>These convenience options are globally saved (as 'global options' so thay can
be set before images are read), and later are transfered to the property of
individual images, only when they are read in. At that time any internal
percent escape present is then handled. </p>

<p>To change a property of an image already in memory, you need to use <a
href="command-line-options.html#set" >-set</a>.
</p>

<p>Note that properties, like attributes (and profiles), are saved with
images when write, if the image file format allows. </p>


<h3>Artifacts and Options</h3>

<p>The previous percent escapes are associated with the primary Attributes and
Properties. Which is the original and primary focus of such percent escapes.
</p>

<p>However there are many operational settings that are used by various
ImageMagick operators that can be useful to set and later access.  These
consist of per-image Artifacts, and Global options (associated with a list of
images, typically the current image list).</p>

<p>Note that the major difference between an artifact and a property is that
artifacts, being an internal operational setting, is not saved with images (if
such is possible). </p>

<p>For example when you use <code>-define 'distort:viewport=100x100'</code> you
are in fact generating a global option, which the <a href="command-line-options.html#distort"
>-distort</a> operator will use to modify its behavior (distorted output
image 'view'). </p>

<p>An Option is essentually a Artifact that has been stored globally as part
of a list of images (specifically a 'Wand' of images). As such they are
identical, in that a Option, is simply a global Artifact for all the
associated images. </p>

<p>As such you can use <code>-set 'option:distort:viewport' '100x100'</code> to
achieve the same result of setting a Artifact for the disort operation to use.
</p>

<p><b>Internal Handling of a Global Option...</b></p>

<p>The Core library ('MagickCore') does not generally directly understand
Global Options. As such, continuing the previous example, the
<code>DistortImages()</code> function only looks up an artifact to discover if
a 'viewport' has been provided to it. </p>

<p>How Global Options are used when a library function requests an Artifact is
one of the key differences between IMv6 and IMv7.</p>

<p>Sets a link back to the global options
data, so that if a specific per-image Artifact is not found , then it will
look for a equivalent global Option for that image list.  directly.  This
saves coping these free-form options into artifacts repeatally, and means you
can now separately define a global option for a list, and a individual
overriding artifact for a specific image in that list. </p>

<p>Note that many API's that do not use Wands (PerlMagick for example using
arrays of images rather than a Wand). In these API's you will not have Global
Options, only per-image Artifacts. </p>

<p>In summery a Global Option, if available, is equivalent to a per-image
Artifact. </p>


<h3>Glob-Pattern Listing of Properties, Artifacts and Options</h3>

<p>The <var>setting</var> can contain a glob pattern. As such you can
now list all free-form string properties, artifacts, and options, (but not
specific image attributes) using...</p>

<pre class="highlight"><code>magick ... \
   -print "__Properties__\n%[*]" \
   -print "__Artifacts__\n%[artifact:*]" \
   -print "__Options__\n%[option:*]" \
   ...
</code></pre>

<p> The format of glob patterns are very specific and as such is generally
only used to list specific settings, such as when debugging, rather than being
used for image processing use. </p>


<h3>Calculated Percent Escape Prefixes</h3>

<p>There are some special prefixes (before the first ':') which performs
calculations based on the user provided string that follows that prefix.  For
example you can do a numerical calculation use <code>%[fx:...]</code> to
evaluate the given <a href="fx.html">FX</a> expressions:</p>

<pre class="highlight"><code>%[fx:<var>expression</var>]
</code></pre>

<p>Use <code>pixel:</code> or <code>hex:</code> to evaluate a pixel color as defined by the <a
href="fx.html">FX</a>
expression:</p>

<pre class="highlight"><code>%[pixel:<var>expression</var>]
</code></pre>

<h3>Specific Profile Percent Escape Prefixes</h3>

<p>You can also use the following special formatting syntax to print EXIF
mage meta-data that was included in the image read in:</p>

<pre class="highlight"><code>%[EXIF:<var>tag</var>]
</code></pre>

<p>Choose <var>tag</var> from the following:</p>

<pre class="pre-scrollable"><code>
*  (print all EXIF tags, in keyword=data format)
!  (print all EXIF tags, in tag_number data format)
#hhhh (print data for EXIF tag #hhhh)
ImageWidth
ImageLength
BitsPerSample
Compression
PhotometricInterpretation
FillOrder
DocumentName
ImageDescription
Make
Model
StripOffsets
Orientation
SamplesPerPixel
RowsPerStrip
StripByteCounts
XResolution
YResolution
PlanarConfiguration
ResolutionUnit
TransferFunction
Software
DateTime
Artist
WhitePoint
PrimaryChromaticities
TransferRange
JPEGProc
JPEGInterchangeFormat
JPEGInterchangeFormatLength
YCbCrCoefficients
YCbCrSubSampling
YCbCrPositioning
ReferenceBlackWhite
CFARepeatPatternDim
CFAPattern
BatteryLevel
Copyright
ExposureTime
FNumber
IPTC/NAA
EXIFOffset
InterColorProfile
ExposureProgram
SpectralSensitivity
GPSInfo
ISOSpeedRatings
OECF
EXIFVersion
DateTimeOriginal
DateTimeDigitized
ComponentsConfiguration
CompressedBitsPerPixel
ShutterSpeedValue
ApertureValue
BrightnessValue
ExposureBiasValue
MaxApertureValue
SubjectDistance
MeteringMode
LightSource
Flash
FocalLength
MakerNote
UserComment
SubSecTime
SubSecTimeOriginal
SubSecTimeDigitized
FlashPixVersion
ColorSpace
EXIFImageWidth
EXIFImageLength
InteroperabilityOffset
FlashEnergy
SpatialFrequencyResponse
FocalPlaneXResolution
FocalPlaneYResolution
FocalPlaneResolutionUnit
SubjectLocation
ExposureIndex
SensingMethod
FileSource
SceneType
</code></pre>
<br/>
<p>Surround the format specification with quotation marks to prevent your
shell from misinterpreting any spaces and square brackets.</p>

<p>The following special formatting syntax can be used to print IPTC
information contained in the file:</p>

<pre class="highlight"><code>%[IPTC:<var>dataset</var>:<var>record</var>]
</code></pre>

<p>Select <var>dataset</var> and <var>record</var> from the following:</p>

<pre class="pre-scrollable:">
  Envelope Record
  1:00  Model Version
  1:05  Destination
  1:20  File Format
  1:22  File Format Version
  1:30  Service Identifier
  1:40  Envelope Number
  1:50  Product ID
  1:60  Envelope Priority
  1:70  Date Sent
  1:80  Time Sent
  1:90  Coded Character Set
  1:100  UNO (Unique Name of Object)
  1:120  ARM Identifier
  1:122  ARM Version

Application Record
  2:00  Record Version
  2:03  Object Type Reference
  2:05  Object Name (Title)
  2:07  Edit Status
  2:08  Editorial Update
  2:10  Urgency
  2:12  Subject Reference
  2:15  Category
  2:20  Supplemental Category
  2:22  Fixture Identifier
  2:25  Keywords
  2:26  Content Location Code
  2:27  Content Location Name
  2:30  Release Date
  2:35  Release Time
  2:37  Expiration Date
  2:38  Expiration Time
  2:40  Special Instructions
  2:42  Action Advised
  2:45  Reference Service
  2:47  Reference Date
  2:50  Reference Number
  2:55  Date Created
  2:60  Time Created
  2:62  Digital Creation Date
  2:63  Digital Creation Time
  2:65  Originating Program
  2:70  Program Version
  2:75  Object Cycle
  2:80  By-Line (Author)
  2:85  By-Line Title (Author Position) [Not used in Photoshop 7]
  2:90  City
  2:92  Sub-Location
  2:95  Province/State
  2:100  Country/Primary Location Code
  2:101  Country/Primary Location Name
  2:103  Original Transmission Reference
  2:105  Headline
  2:110  Credit
  2:115  Source
  2:116  Copyright Notice
  2:118  Contact
  2:120  Caption/Abstract
  2:122  Caption Writer/Editor
  2:125  Rasterized Caption
  2:130  Image Type
  2:131  Image Orientation
  2:135  Language Identifier
  2:150  Audio Type
  2:151  Audio Sampling Rate
  2:152  Audio Sampling Resolution
  2:153  Audio Duration
  2:154  Audio Outcue
  2:200  ObjectData Preview File Format
  2:201  ObjectData Preview File Format Version
  2:202  ObjectData Preview Data

Pre-ObjectData Descriptor Record
  7:10   Size Mode
  7:20   Max Subfile Size
  7:90   ObjectData Size Announced
  7:95   Maximum ObjectData Size

ObjectData Record
  8:10   Subfile

Post ObjectData Descriptor Record
  9:10   Confirmed ObjectData Size
</code></pre>
</div>
    </div>
  </main><!-- /.container -->
  <footer class="magick-footer">
    <p><a href="security-policy.html">Security</a> •
    <a href="architecture.html">Architecture</a>
     
    <a href="escape.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
     
    <a href="links.html">Related</a> •
     <a href="sitemap.html">Sitemap</a>
    <br/>
    <a href="support.html">Donate</a> •
    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
    <br/>
    <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
        <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
    <br/>
    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
  </footer>

  <!-- Javascript assets -->
  <script src="assets/magick.js" crossorigin="anonymous"></script>
  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
</body>
</html>
<!-- Magick Cache 19th March 2020 17:39 -->