
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN"
      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/1999/xhtml
                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
  <title>ImageMagick: Format and Print Image Properties</title>
  <meta http-equiv="Content-Language" content="en-US"/>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
  <meta name="Application-name" content="ImageMagick"/>
  <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images."/>
  <meta name="Application-url" content="http://www.imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="format, print, image, properties, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
  <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-2011 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
  <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>
  <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />
  <script type="text/javascript">
    $(document).ready(function() {
      $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({
        'transitionIn'  : 'elastic',
        'transitionOut' : 'elastic',
        'overlayShow'   : false,
        'opacity'       : true
      });
    });
  </script>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<div style="margin: 17px auto; float: left;">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "5439289906";
    google_ad_width = 728;
    google_ad_height = 90;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg"
  alt="ImageMagick Logo"
  style="width: 123px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg"
  alt="ImageMagick Sprite"
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="westbar">

<div class="menu">
  <a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Binary Releases" href="../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: iPhone" href="../www/binary-releases.html#iPhone">iPhone</a>
</div>
<div class="sub">
    <a title="Binary Release: Windows" href="../www/binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Command-line Tools" href="../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a title="Program Interfaces" href="../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="../www/magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="../www/resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="../www/architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="../www/search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map" href="../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
  <a title="Site Map: Links" href="../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a rel="follow" title="Sponsors" href="../www/sponsors.html">Sponsors:</a>

<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
<div class="sponsbox">
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a rel="follow" title="Sponsor: Autoteile Online Shop" href="http://www.autoteile-carparts.de">Autoteile Online Shop</a><!-- 2011080100030 autoteile-Carparts-->
</div>
</div>
</div>
</div>

<div class="eastbar">

</div>

<div class="main">

<h1>ImageMagick Escapes</h1>
<p class="navigation-index"></p>

<div class="doc-section">
<p>Use the <a href="../www/command-line-options.html#format_identify_">-format</a> option to print properties associated with an image in a format of your choosing. You can include the image filename, type, width, height, EXIF data, or other image attributes by embedding special format characters:</p>

<pre class="text">
   %b   original file size of image file
   %c   comment property
   %d   directory path
   %e   filename extension or suffix
   %f   filename (including suffix)
   %g   page geometry   ( = %Wx%H%X%Y )
   %h   current image height in pixels
   %i   input filename (full path)
   %k   number of unique colors
   %l   label property
   %m   magick format used during read
   %n   number of images in sequence
   %o   output filename
   %p   index of image in sequence
   %q   quantum depth (compile-time constant)
   %r   image class and colorspace
   %s   scene number (from input unless re-assigned)
   %t   top of filename (excluding suffix)
   %u   unique temporary filename
   %w   current width in pixels
   %x   x resolution
   %y   y resolution
   %z   image depth (as read in)
   %A   image transparency channel enabled (true/false)
   %C   image compression type
   %D   image dispose method
   %G   image size ( = %wx%h )
   %H   page (canvas) height
   %O   page (canvas) offset ( = %X%Y )
   %P   page (canvas) size ( = %Wx%H )
   %Q   image compression quality
   %S   ?? scenes ??
   %T   image time delay
   %W   page (canvas) width
   %X   page (canvas) x offset (including sign)
   %Y   page (canvas) y offset (including sign)
   %@   bounding box
   %#   signature
   %%   a percent sign
   \n   newline
   \r   carriage return
</pre>

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

<p class='crt'><span class="crtprompt"> $magick&gt; </span><span class='crtin'>identify -format "%m:%f %wx%h" bird.miff</span><span class='crtout'>MIFF:bird.miff 512x480</span></p>
<p>Additional properties are recognized when enclosed in braces:</p>

<pre class="text">
   %[base]                 base filename, no suffixes (as %t)
   %[channels]
   %[colorspace]           Colorspace of Image Data (excluding transparency)
   %[copyright]            ImageMagick Copyright String
   %[depth]                depth of image for write (as input unless changed)
   %[directory]            directory part of filename (as %d)
   %[extension]            extention part of filename (as %e)
   %[group]
   %[height]               original height of image (when it was read in)
   %[magick]               coder used to read image (not the file suffix)
   %[max]
   %[mean]
   %[min]
   %[name]
   %[opaque]
   %[page]
   %[scene]                original scene number of image in input file
   %[scenes]               original number of scenes in input file
   %[size]                 original size of image (when it was read in)
   %[standard-deviation]
   %[unique]               unique temporary filename ???
   %[version]              Version Information of this running ImageMagick
   %[width]                original width of image (when it was read in)
   %[xresolution]
   %[yresolution]
   %[*]                    list of image property strings
</pre>

<p>Use <kbd>%[fx:...]</kbd> to evaluate <a href="../www/fx.html">FX</a> expressions:</p>

<pre class="text">
   %[fx:<em class="arg">expression</em>]
</pre>

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

<pre class="text">
   %[pixel:<em class="arg">expression</em>]
</pre>

<p>You can also use the following special formatting syntax to print EXIF
information contained in the file:</p>

<pre class="text">
   %[EXIF:<em class="arg">tag</em>]
</pre>

<p>Choose <em class="arg">tag</em> from the following:</p>

<pre class="text">
   *  (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
</pre>

<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="text">
   %[IPTC:<em class="arg">dataset</em>:<em class="arg">record</em>]
</pre>

<p>Select <em class="arg">dataset</em> and <em class="arg">record</em> from the following:</p>

<pre class="text">
    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:35  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
</pre>
</div>

</div>

<div id="linkbar">
    <span id="linkbar-west">&nbsp;</span>
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
      <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
