



<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8"  />
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
  <title>Format and Print Image Properties @ ImageMagick</title>
  <meta name="application-name" content="ImageMagick" />
  <meta name="description" content="ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves." />
  <meta name="application-url" content="https://www.imagemagick.org" />
  <meta name="generator" content="PHP" />
  <meta name="keywords" content="format, print, image, properties, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
  <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-2018 ImageMagick Studio LLC" />
  <meta name="distribution" content="Global" />
  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
  <link href="https://www.imagemagick.org/script/escape.html" rel="canonical" />
  <link href="../images/wand.png" rel="icon" />
  <link href="../images/wand.ico" rel="shortcut icon" />
  <link href="css/magick.css" rel="stylesheet" />
</head>
<body>
<div class="magick-masthead">
  <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-ad-format="auto"></ins>
    <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    <nav class="nav magick-nav">
      <a class="nav-link " href="../index.html">Home</a>
      <a class="nav-link " href="download.html">Download</a>
      <a class="nav-link " href="command-line-tools.html">Tools</a>
      <a class="nav-link " href="command-line-processing.html">Command-line</a>
      <a class="nav-link " href="resources.html">Resources</a>
      <a class="nav-link " href="develop.html">Develop</a>
      <a class="nav-link " href="https://www.imagemagick.org/script/search.php">Search</a>
      <a class="nav-link float-right" href="https://www.imagemagick.org/discourse-server/">Community</a>
    </nav>
  </div>
</div>
<div class="container">
<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">
<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><b>As of IM v6.8.0-5</b> 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>


<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">
<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</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>%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">
<table class="table table-sm table-striped">
  <tr>
    <td>%[base]</td>
    <td>base filename, no suffixes (as %t)</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 (as of IM 6.9.1-0)</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>%[compression]</td>
    <td>Image compression type (as of IM 7.0.3.8)</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>%[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 (as of IM 6.9.1-0)</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>%[name]</td>
    <td>The original name of the 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>%[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 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>In <b>ImageMagick version 6</b>... before each operator, any global Options
are copied to per-image Artifacts, for every image in the current image list.
This allows various operators to find its operational 'defines' or Artifacts.
</p>

<p>In <b>ImageMagick version 7</b>... 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>convert ... \
   -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>
  <footer class="magick-footer">
    <p><a href="support.html">Donate</a> •
     <a href="sitemap.html">Sitemap</a> •
    <a href="links.html">Related</a> •
    <a href="security-policy.html">Security</a> •
    <a href="architecture.html">Architecture</a>
</p>
    <p><a href="escape.html#">Back to top</a> •
    <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
    <a href="https://www.imagemagick.org/script/contact.php">Contact Us</a></p>
        <p><small>© 1999-2018 ImageMagick Studio LLC</small></p>
  </footer>
</div><!-- /.container -->

  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
  <script src="../js/magick.html"></script>
</body>
</html>
<!-- Magick Cache 8th October 2017 11:17 -->