



<!DOCTYPE html>
<html lang="en">
<head>
    <title>ImageMagick: Command-line Tools: Conjure</title>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  <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="http://www.imagemagick.org"/>
  <meta name="generator" content="PHP"/>
  <meta name="keywords" content="command-line, tools:, conjure, 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-2016 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 rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"/>
  <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:900,400,400italic,700,700italic,300,300italic|Open+Sans:300italic,400italic,700italic,300,400,600,700">
  <link rel="stylesheet" href="css/magick.css"/>
</head>
<body>
<div class="main">
<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="magick-nav">
      <a class="magick-nav-item " href="../index.html">Home</a>
      <a class="magick-nav-item " href="binary-releases.html">Download</a>
      <a class="magick-nav-item " href="command-line-tools.html">Tools</a>
      <a class="magick-nav-item " href="command-line-processing.html">Command-line</a>
      <a class="magick-nav-item " href="resources.html">Resources</a>
      <a class="magick-nav-item " href="api.html">Develop</a>
      <a class="magick-nav-item " href="http://www.imagemagick.org/script/search.php">Search</a>
      <a class="magick-nav-item pull-right" href="https://www.imagemagick.org/discourse-server/">Community</a>
    </nav>
  </div>
</div>
<div class="container">
<div class="magick-header">
<p class="text-center"><a href="conjure.html#usage">Example Usage</a> • <a href="conjure.html#options">Option Summary</a> • <a href="conjure.html#msl">Magick Scripting Language (MSL)</a> </p>

<p class="lead magick-description">The <code>conjure</code> program gives you the ability to perform custom image processing tasks from a script written in the Magick Scripting Language (MSL).  MSL is XML-based and consists of action statements with attributes.  Actions include reading an image, processing an image, getting attributes from an image, writing an image, and more.  An attribute is a key/value pair that modifies the behavior of an action.  See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>conjure</code> command or see below for example usages of the command.</p>

<h2 class="magick-header"><a id="usage"></a>Example Usage</h2>

<p>We list a few examples of the <code>conjure</code> command here to illustrate its usefulness and ease of use. To get started, here is simple <code>conjure</code> command:</p>

<pre>
conjure -dimensions 400x400 msl:incantation.msl
</pre>

<p>The MSL script <a href="../source/incantation.msl">incantation.msl</a> used above is here:</p>

<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;image&gt;
  &lt;read filename="image.gif" /&gt;
  &lt;get width="base-width" height="base-height" /&gt;
  &lt;resize geometry="%[dimensions]" /&gt;
  &lt;get width="resize-width" height="resize-height" /&gt;
  &lt;print output="Image sized from %[base-width]x%[base-height] to %[resize-width]x%[resize-height].\n" /&gt;
  &lt;write filename="image.png" /&gt;
&lt;/image&gt;
</pre>

<p>In this example, a family stayed home for their vacation but as far as their friends are concerned they went to a beautiful beach in the Caribbean:</p>

<pre>
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;group>
    &lt;image id="family">
        &lt;read filename="family.gif"/>
        &lt;resize geometry="300x300"/>
    &lt;/image>
    &lt;image id="palm-trees">
        &lt;read filename="palm-trees.gif"/>
        &lt;resize geometry="300x100"/>
    &lt;/image>
    &lt;image>
        &lt;read filename="beach.jpg"/>
        &lt;composite image="family" geometry="+30+40"/>
        &lt;composite image="palm-trees" geometry="+320+90"/>
    &lt;/image>
    &lt;write filename="family-vacation.png"/>
&lt;/group>
</pre>

<p>Here we display the width in pixels of text for a particular font and pointsize.</p>

<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;image&gt;
  &lt;query-font-metrics text="ImageMagick" font="helvetica" pointsize="48" /&gt;
  &lt;print output="Text width is %[msl:font-metrics.width] pixels.\n" /&gt;
&lt;/image&gt;
</pre>

<p>The <code>query-font-metrics</code> tag supports these properties:</p>

<pre>
msl:font-metrics.pixels_per_em.x
msl:font-metrics.pixels_per_em.y
msl:font-metrics.ascent
msl:font-metrics.descent
msl:font-metrics.width
msl:font-metrics.height
msl:font-metrics.max_advance
msl:font-metrics.bounds.x1
msl:font-metrics.bounds.y1
msl:font-metrics.bounds.x2
msl:font-metrics.bounds.y2
msl:font-metrics.origin.x
msl:font-metrics.origin.y
</pre>

<p>MSL supports most methods and attributes discussed in the <a href="perl-magick.html">Perl API for ImageMagick</a>.
</p>

<p>In addition, MSL supports the <code>swap</code> element with a single <code>indexes</code> element.</p>

<p>You can find additional examples of using <code>conjure</code> in <a href="http://www.ibm.com/developerworks/library/l-graf/?ca=dnt-428">Graphics from the Command Line</a>.  Further discussion is available in <a href="http://www.ibm.com/developerworks/library/l-graf2/?ca=dgr-lnxw15GraphicsLine">More Graphics from the Command Line</a> and <a href="http://www.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.</p>


<h2 class="magick-header"><a id="options"></a>Option Summary</h2>

<p>The <code>conjure</code> command recognizes these options.  Click on an option to get more details about how that option works.</p>

<table class="table table-condensed table-striped">
  <tbody>
  <tr>
    <th align="left">Option</th>
    <th align="left">Description</th>
  </tr>

  <tr>
    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
    <td>display copious debugging information</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#help">-help</a></td>
    <td>print program options</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
    <td>format of debugging information</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#monitor">-monitor</a></td>
    <td>monitor progress</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#quiet">-quiet</a></td>
    <td>suppress all warning messages</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
    <td>pay attention to warning messages.</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
    <td>seed a new sequence of pseudo-random numbers</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#verbose">-verbose</a></td>
    <td>print detailed information about the image</td>
  </tr>

  <tr>
    <td><a href="command-line-options.html#version">-version</a></td>
    <td>print version information</td>
  </tr>

  </tbody>
</table>

<h2 class="magick-header"><a id="msl"></a>Magick Scripting Language</h2>
<p>The <code>conjure</code> command recognizes these MSL elements.  Any element with a strike-thru is not supported yet.</p>
<table class="table table-condensed table-striped">
<caption>Magick Scripting Language (MSL)</caption>
<tbody>
  <tr>
    <th>Method</th>
    <th style="width: 40%;">Parameters</th>
    <th style="width: 40%;">Description</th>
  </tr>
  <tr>
    <td><strike>adaptiveblur</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>adaptively blur the image with a Gaussian operator of the given radius and standard deviation (sigma).  Decrease the effect near edges.</td>
  </tr>

  <tr>
    <td><strike>adaptiveresize</strike></td>
    <td>geometry="geometry", width="integer", height="integer", filter="Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc", support="double", blur="double"</td>

    <td>adaptively resize image using data dependant triangulation. Specify blur &gt; 1 for blurry or &lt; 1 for sharp</td>
  </tr>

  <tr>
    <td><strike>adaptivesharpen</strike></td>

    <td>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>adaptively sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma).  Increase the effect near edges.</td>
  </tr>

  <tr>
    <td><strike>adaptivethreshold</strike></td>
    <td>geometry="geometry", width="integer", height="integer", offset="integer"</td>
    <td>local adaptive thresholding.</td>

  </tr>

  <tr>
    <td><strike>addnoise</strike></td>
    <td>noise="Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson", attenuate="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>add noise to an image</td>

  </tr>

  <tr>
    <td><strike>affinetransform</strike></td>
    <td>affine="array of float values", translate="float, float", scale= "float, float", rotate="float", skewX="float", skewY="float", interpolate="Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor", background="color name"</td>

    <td>affine transform image</td>
  </tr>

  <tr>
    <td><strike>affinity</strike></td>
    <td>image="image-handle", method="None, FloydSteinberg, Riemersma"</td>

    <td>choose a particular set of colors from this image</td>
  </tr>

  <tr>
    <td>&lt;annotate&gt;</td>
    <td>text="string", font="string", family="string", style="Normal, Italic, Oblique, Any", stretch="Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded", weight="integer", pointsize="integer", density="geometry", stroke="color name", strokewidth="integer", fill="color name", undercolor="color name", kerning="float", geometry="geometry", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast", antialias="true, false", x="integer", y="integer", affine="array of float values", translate="float, float", scale="float, float", rotate="float". skewX="float", skewY= "float", align="Left, Center, Right", encoding="UTF-8", interline-spacing="double", interword-spacing="double", direction="right-to-left, left-to-right"</td>

    <td>annotate an image with text. See QueryFontMetrics to get font metrics without rendering any text.</td>
  </tr>

  <tr>
    <td><strike>autogamma</strike></td>
    <td>channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>automagically adjust gamma level of image</td>
  </tr>

  <tr>
    <td><strike>autolevel</strike></td>
    <td>channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>automagically adjust color levels of image</td>

  </tr>

  <tr>
    <td><strike>autoorient</strike></td>
    <td> </td>
    <td>adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation)</td>
  </tr>

  <tr>

    <td><strike>blackthreshold</strike></td>
    <td>threshold="string", , channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>force all pixels below the threshold intensity into black</td>
  </tr>

  <tr>

    <td><strike>blueshift</strike></td>
    <td>factor="double",</td>
    <td>simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5.</td>
  </tr>

  <tr>
    <td>&lt;blur&gt;</td>

    <td>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td>&lt;border&gt;</td>
    <td>geometry="geometry", width="integer", height="integer", bordercolor="color name",  compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ",</td>

    <td>surround the image with a border of color</td>
  </tr>

  <tr>
    <td>&lt;charcoal&gt;</td>
    <td>geometry="geometry", radius="double", sigma="double"</td>

    <td>simulate a charcoal drawing</td>
  </tr>

  <tr>
    <td>&lt;chop&gt;</td>
    <td>geometry="geometry", width="integer", height="integer", x="integer", y="integer"</td>

    <td>chop an image</td>
  </tr>

  <tr>
    <td><strike>clamp</strike></td>
    <td>channel="Red, RGB, All, etc."</td>
    <td>set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</td>

  </tr>

  <tr>
    <td><strike>clip</strike></td>
    <td>id="name", inside=""true, false"",</td>
    <td>apply along a named path from the 8BIM profile.</td>

  </tr>

  <tr>
    <td><strike>clipmask</strike></td>
    <td>mask="image-handle"</td>
    <td>clip image as defined by the image mask</td>
  </tr>

  <tr>
    <td><strike>clut</strike></td>
    <td>image="image-handle",  interpolate="Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor", channel="Red, RGB, All, etc."</td>
    <td>apply a color lookup table to an image sequence</td>
  </tr>

  <tr>
    <td><strike>coalesce</strike></td>
    <td> </td>
    <td>merge a sequence of images</td>
  </tr>

  <tr>
    <td><strike>color</strike></td>

    <td>color="color name"</td>
    <td>set the entire image to this color.</td>
  </tr>

  <tr>
    <td><strike>colordecisionlist</strike></td>
    <td>filename="string",</td>

    <td>color correct with a color decision list.</td>
  </tr>

  <tr>
    <td>&lt;colorize&gt;</td>
    <td>fill="color name", blend="string"</td>

    <td>colorize the image with the fill color</td>
  </tr>

  <tr>
    <td><strike>colormatrix</strike></td>
    <td>matrix="array of float values"</td>
    <td>apply color correction to the image.  Although you can use variable sized matrices, typically you use a 5 x 5 for an RGBA image and a 6x6 for CMYKA.  A 6x6 matrix is required for offsets (populate the last column with normalized values).</td>

  </tr>

  <tr>
    <td>&lt;comment&gt;</td>
    <td>string</td>
    <td>add a comment to your image</td>
  </tr>

  <tr>
    <td><strike>comparelayers</strike></td>
    <td>method="any, clear, overlay"</td>
    <td>compares each image with the next in a sequence and returns the minimum bounding region of any pixel differences it discovers.  Images do not have to be the same size, though it is best that all the images are coalesced (images are all the same size, on a flattened canvas, so as to represent exactly how a specific frame should look).</td>
  </tr>

  <tr>

    <td>&lt;composite&gt;</td>
    <td>image="image-handle", compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ", mask="image-handle", geometry="geometry", x="integer", y="integer", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast", opacity="integer", tile="True, False", rotate="double", color="color name", blend="geometry", interpolate="undefined, average, bicubic, bilinear, filter, integer, mesh, nearest-neighbor, spline"</td>

    <td>composite one image onto another.  Use the rotate parameter in concert with the tile parameter.</td>
  </tr>

  <tr>
    <td>&lt;contrast&gt;</td>
    <td>sharpen="True, False"</td>
    <td>enhance or reduce the image contrast</td>

  </tr>

  <tr>
    <td><strike>contraststretch</strike></td>
    <td>levels="string", 'black-point'="double", 'white-point'="double", channel="Red, RGB, All, etc."</td>

    <td>improve the contrast in an image by `stretching' the range of intensity values</td>
  </tr>

  <tr>
    <td><strike>convolve</strike></td>
    <td>coefficients="array of float values", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", bias="double"</td>

    <td>apply a convolution kernel to the image. Given a kernel "order" , you would supply "order*order" float values (e.g. 3x3 implies 9 values).</td>
  </tr>

  <tr>
    <td>&lt;crop&gt;</td>

    <td>geometry="geometry", width="integer", height="integer", x="integer", y="integer", fuzz="double", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast"</td>
    <td>crop an image</td>

  </tr>

  <tr>
    <td><strike>cyclecolormap</strike></td>
    <td>amount="integer"</td>
    <td>displace image colormap by amount</td>
  </tr>

  <tr>
    <td><strike>decipher</strike></td>
    <td>passphrase="string"</td>
    <td>convert cipher pixels to plain pixels</td>
  </tr>

  <tr>

    <td><strike>deconstruct</strike></td>
    <td> </td>
    <td>break down an image sequence into constituent parts</td>
  </tr>

  <tr>
    <td><strike>deskew</strike></td>
    <td>geometry="string",threshold="double"</td>

    <td>straighten the image</td>
  </tr>

  <tr>
    <td>&lt;despeckle&gt;</td>
    <td> </td>
    <td>reduce the speckles within an image</td>
  </tr>

  <tr>
    <td><strike>difference</strike></td>
    <td>image="image-handle"</td>
    <td>compute the difference metrics between two images </td>
  </tr>

  <tr>

    <td><strike>distort</strike></td>
    <td>points="array of float values", method="Affine, AffineProjection, Bilinear, Perspective, Resize, ScaleRotateTranslate", virtual-pixel="Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White", best-fit="True, False"</td>
    <td>distort image</td>
  </tr>

  <tr>
    <td>&lt;draw&gt;</td>
    <td>primitive="point, line, rectangle, arc, ellipse, circle, path, polyline, polygon, bezier, color, matte, text, @"filename"", points="string" , method=""Point, Replace, Floodfill, FillToBorder, Reset"", stroke="color name", fill="color name", font="string", pointsize="integer", strokewidth="float", antialias="true, false", bordercolor="color name", x="float", y="float", dash-offset="float", dash-pattern="array of float values", affine="array of float values", translate="float, float", scale="float, float", rotate="float",  skewX="float", skewY="float", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline", kerning="float", text="string", vector-graphics="string", interline-spacing="double", interword-spacing="double", direction="right-to-left, left-to-right"</td>

    <td>annotate an image with one or more graphic primitives.</td>
  </tr>

  <tr>
    <td><strike>encipher</strike></td>
    <td>passphrase="string"</td>
    <td>convert plain pixels to cipher pixels</td>

  </tr>

  <tr>
    <td>&lt;edge&gt;</td>
    <td>radius="double"</td>
    <td>enhance edges within the image with a convolution filter of the given radius.</td>
  </tr>

  <tr>
    <td>&lt;emboss&gt;</td>
    <td>geometry="geometry", radius="double", sigma="double"</td>
    <td>emboss the image with a convolution filter of the given radius and standard deviation (sigma).</td>

  </tr>

  <tr>
    <td>&lt;enhance&gt;</td>
    <td> </td>
    <td>apply a digital filter to enhance a noisy image</td>
  </tr>

  <tr>

    <td>&lt;equalize&gt;</td>
    <td>channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow" </td>
    <td>perform histogram equalization to the image</td>
  </tr>

  <tr>
    <td><strike>extent</strike></td>

    <td>geometry="geometry", width="integer", height="integer", x="integer", y="integer", fuzz="double", background="color name", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast"</td>

    <td>set the image size</td>
  </tr>

  <tr>
    <td><strike>evaluate</strike></td>
    <td>value="double", operator=""Add, And, Divide, LeftShift, Max, Min, Multiply, Or, Rightshift, Subtract, Xor"", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow" </td>

    <td>apply an arithmetic, relational, or logical expression to the image</td>
  </tr>

  <tr>
    <td><strike>filter</strike></td>
    <td>kernel="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", bias="double"</td>

    <td>apply a convolution kernel to the image.</td>
  </tr>

  <tr>
    <td>&lt;flip&gt;</td>
    <td> </td>
    <td>reflect the image scanlines in the vertical direction</td>
  </tr>

  <tr>
    <td>&lt;flop&gt;</td>
    <td> </td>
    <td>reflect the image scanlines in the horizontal direction</td>
  </tr>

  <tr>
    <td><strike>floodfillpaint</strike></td>

    <td>geometry="geometry", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", x="integer", y="integer" , fill="color name", bordercolor="color name", fuzz="double", invert="True, False"</td>

    <td>changes the color value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the color value is changed for any neighbor pixel that is not that color.</td>
  </tr>

  <tr>
    <td><strike>forwardfouriertransform</strike></td>
    <td>magnitude="True, False"</td>
    <td>implements the forward discrete Fourier transform (DFT)</td>

  </tr>

  <tr>
    <td>&lt;frame&gt;</td>
    <td>geometry="geometry", width="integer", height="integer", inner="integer", outer="integer", fill="color name",  compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ",</td>

    <td>surround the image with an ornamental border</td>
  </tr>

  <tr>
    <td><strike>function</strike></td>
    <td>parameters="array of float values", function="Sin", virtual-pixel="Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White"</td>

    <td>apply a function to the image</td>
  </tr>

  <tr>
    <td>&lt;gamma&gt;</td>
    <td>gamma="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>gamma correct the image</td>
  </tr>

  <tr>
    <td><strike>gaussianblur</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td><strike>getpixel</strike></td>
    <td>geometry="geometry", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", normalize="true, false", x="integer", y="integer"</td>

    <td>get a single pixel. By default normalized pixel values are returned.</td>
  </tr>

  <tr>
    <td><strike>getpixels</strike></td>
    <td>geometry="geometry", width="integer", height="integer", x="integer", y="integer", map="string", normalize="true, false"</td>

    <td>get image pixels as defined by the map (e.g. "RGB", "RGBA", etc.).  By default non-normalized pixel values are returned.</td>
  </tr>

  <tr>
    <td><strike>grayscale</strike></td>
    <td>channel="Average, Brightness, Lightness, Rec601Luma, Rec601Luminance, Rec709Luma, Rec709Luminance, RMS"</td>
    <td>convert image to grayscale</td>

  </tr>

  <tr>
    <td><strike>haldclut</strike></td>
    <td>image="image-handle",  channel="Red, RGB, All, etc."</td>
    <td>apply a Hald color lookup table to an image sequence</td>

  </tr>

  <tr>
    <td><strike>identify</strike></td>
    <td>file="file", features="distance", unique="True, False"</td>
    <td>identify the attributes of an image</td>

  </tr>

  <tr>
    <td>&lt;implode&gt;</td>
    <td>amount="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"</td>
    <td>implode image pixels about the center</td>

  </tr>

  <tr>
    <td><strike>inversediscretefouriertransform</strike></td>
    <td>magnitude="True, False"</td>
    <td>implements the inverse discrete Fourier transform (DFT)</td>
  </tr>

  <tr>
    <td>&lt;label&gt;</td>
    <td>string</td>
    <td>assign a label to an image</td>
  </tr>

  <tr>

    <td><strike>layers</strike></td>
    <td>method="coalesce, compare-any, compare-clear, compare-over, composite, dispose, flatten, merge, mosaic, optimize, optimize-image, optimize-plus, optimize-trans, remove-dups, remove-zero",  compose="Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyOpacity, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, LinearLight, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor ", dither="true, false"</td>
    <td>compare each image the GIF disposed forms of the previous image in the sequence.  From this, attempt to select the smallest cropped image to replace each frame, while preserving the results of the animation.</td>
  </tr>

  <tr>

    <td>&lt;level&gt;</td>
    <td>levels="string", 'black-point'="double", 'gamma'="double", 'white-point'="double", channel="Red, RGB, All, etc."</td>
    <td>adjust the level of image contrast</td>

  </tr>

  <tr>
    <td><strike>levelcolors</strike></td>
    <td>invert=&gt;"True, False", 'black-point'="string",  'white-point'="string", channel="Red, RGB, All, etc."</td>

    <td>level image with the given colors</td>
  </tr>

  <tr>
    <td><strike>linearstretch</strike></td>
    <td>levels="string", 'black-point'="double", 'white-point'="double"</td>

    <td>linear with saturation stretch</td>
  </tr>

  <tr>
    <td><strike>liquidresize</strike></td>
    <td>geometry="geometry", width="integer", height="integer", delta-x="double", rigidity="double"</td>

    <td>rescale image with seam-carving.</td>
  </tr>

  <tr>
    <td>&lt;magnify&gt;</td>
    <td> </td>
    <td>double the size of the image with pixel art scaling</td>
  </tr>

  <tr>
    <td><strike>mask</strike></td>
    <td>mask="image-handle"</td>
    <td>composite image pixels as defined by the mask</td>
  </tr>

  <tr>

    <td><strike>mattefloodfill</strike></td>
    <td>geometry="geometry", x="integer", y="integer" , matte="integer", bordercolor="color name", fuzz="double", invert="True, False"</td>

    <td>changes the matte value of any pixel that matches the color of the target pixel and is a neighbor. If you specify a border color, the matte value is changed for any neighbor pixel that is not that color.</td>
  </tr>

  <tr>
    <td><strike>medianfilter</strike></td>
    <td>geometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>replace each pixel with the median intensity pixel of a neighborhood.</td>
  </tr>

  <tr>
    <td>&lt;minify&gt;</td>
    <td> </td>
    <td>half the size of an image</td>
  </tr>

  <tr>
    <td><strike>mode</strike></td>
    <td>geometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>make each pixel the "predominant color" of the neighborhood.</td>

  </tr>

  <tr>
    <td>&lt;modulate&gt;</td>
    <td>factor="geometry", brightness="double", saturation="double", hue="double", lightness="double", whiteness="double", blackness="double" </td>

    <td>vary the brightness, saturation, and hue of an image by the specified percentage</td>
  </tr>

  <tr>
    <td><strike>morphology</strike></td>
    <td>kernel="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", iterations="integer"</td>

    <td>apply a morphology method to the image.</td>
  </tr>

  <tr>
    <td><strike>motionblur</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", angle="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>reduce image noise and reduce detail levels with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle to simulate the effect of motion</td>
  </tr>

  <tr>
    <td>&lt;negate&gt;</td>
    <td>gray="True, False", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>replace each pixel with its complementary color (white becomes black, yellow becomes blue, etc.)</td>

  </tr>

  <tr>
    <td>&lt;normalize&gt;</td>
    <td>channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow" </td>
    <td>transform image to span the full range of color values</td>
  </tr>

  <tr>
    <td><strike>oilpaint</strike></td>
    <td>radius="integer"</td>
    <td>simulate an oil painting</td>
  </tr>

  <tr>

    <td>&lt;opaque&gt;</td>
    <td>color="color name",
fill="color name", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", invert="True, False"</td>
    <td>change this color to the fill color within the image</td>
  </tr>

  <tr>
    <td><strike>ordereddither</strike></td>
    <td>threshold="threshold, checks, o2x2, o3x3, o4x4, o8x8, h4x4a, h6x6a, h8x8a, h4x4o, h6x6o, h8x8o, h16x16o, hlines6x4", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>order dither image</td>
  </tr>

  <tr>
    <td><strike>perceptible</strike></td>
    <td>epsilon="double", channel="Red, RGB, All, etc."</td>
    <td>set each pixel whose value is less than |"epsilon"| to "-epsilon" or "epsilon" (whichever is closer) otherwise the pixel value remains unchanged..</td>

  </tr>

  <tr>
    <td><strike>polaroid</strike></td>
    <td>caption="string", angle="double", pointsize="double", font="string", stroke= "color name", strokewidth="integer", fill="color name", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast",  background="color name"</td>

    <td>simulate a Polaroid picture.</td>
  </tr>

  <tr>
    <td><strike>posterize</strike></td>
    <td>levels="integer", dither="True, False"</td>

    <td>reduce the image to a limited number of color level</td>
  </tr>

  <tr>
    <td>&lt;profile&gt;</td>
    <td>name="string", profile="blob", rendering-intent="Undefined, Saturation, Perceptual, Absolute, Relative", black-point-compensation="True, False"</td>

    <td>add or remove ICC or IPTC image profile; name is formal name (e.g. ICC or filename; set profile to '' to remove profile</td>
  </tr>

  <tr>
    <td>&lt;quantize&gt;</td>
    <td>colors="integer", colorspace="RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK, sRGB, HSL, HSB", treedepth= "integer", dither="True, False", dither-method="Riemersma, Floyd-Steinberg", measure_error="True, False", global_colormap="True, False", transparent-color="color"</td>

    <td>preferred number of colors in the image</td>
  </tr>

  <tr>
    <td><strike>radialblur</strike></td>
    <td>geometry="geometry", angle="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>radial blur the image.</td>
  </tr>

  <tr>
    <td>&lt;raise&gt;</td>
    <td>geometry="geometry", width="integer", height="integer", x="integer", y="integer", raise="True, False"</td>

    <td>lighten or darken image edges to create a 3-D effect</td>
  </tr>

  <tr>
    <td><strike>reducenoise</strike></td>
    <td>geometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>reduce noise in the image with a noise peak elimination filter</td>
  </tr>

  <tr>
    <td><strike>remap</strike></td>
    <td>image="image-handle",  dither="true, false", dither-method="Riemersma, Floyd-Steinberg"</td>

    <td>replace the colors of an image with the closest color from a reference image.</td>
  </tr>

  <tr>
    <td>&lt;resample&gt;</td>
    <td>density="geometry", x="double", y="double", filter="Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc", support="double"</td>

    <td>resample image to desired resolution. Specify blur &gt; 1 for blurry or &lt; 1 for sharp</td>
  </tr>

  <tr>
    <td>&lt;resize&gt;</td>

    <td>geometry="geometry", width="integer", height="integer", filter="Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc", support="double", blur="double"</td>
    <td>scale image to desired size. Specify blur &gt; 1 for blurry or &lt; 1 for sharp</td>

  </tr>

  <tr>
    <td>&lt;roll&gt;</td>
    <td>geometry="geometry", x="integer", y="integer"</td>
    <td>roll an image vertically or horizontally</td>

  </tr>

  <tr>
    <td>&lt;rotate&gt;</td>
    <td>degrees="double", background="color name"</td>
    <td>rotate an image</td>

  </tr>

  <tr>
    <td>&lt;sample&gt;</td>
    <td>geometry="geometry", width="integer", height="integer"</td>
    <td>scale image with pixel sampling.</td>

  </tr>

  <tr>
    <td>&lt;scale&gt;</td>
    <td>geometry="geometry", width="integer", height="integer"</td>
    <td>scale image to desired size</td>

  </tr>

  <tr>
    <td>&lt;segment&gt;</td>
    <td>colorspace="RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK", verbose="True, False", cluster-threshold="double", smoothing-threshold="double"</td>
    <td>segment an image by analyzing the histograms of the color components and identifying units that are homogeneous</td>

  </tr>

  <tr>
    <td><strike>selectiveblur</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", threshold="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>selectively blur pixels within a contrast threshold.</td>
  </tr>
  <tr>
    <td><strike>separate</strike></td>
    <td>channel="Red, RGB, All, etc."</td>
    <td>separate a channel from the image into a grayscale image</td>

  </tr>

  <tr>
    <td>&lt;shade&gt;</td>
    <td>geometry="geometry", azimuth="double", elevation="double", gray="true, false"</td>

    <td>shade the image using a distant light source</td>
  </tr>

  <tr>
    <td><strike>setpixel</strike></td>
    <td>geometry="geometry", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", color="array of float values", x="integer", y="integer", color="array of float values"</td>

    <td>set a single pixel.  By default normalized pixel values are expected.</td>
  </tr>

  <tr>
    <td>&lt;shadow&gt;</td>
    <td>geometry="geometry", opacity="double", sigma="double", x="integer", y="integer"</td>

    <td>simulate an image shadow</td>
  </tr>

  <tr>
    <td>&lt;sharpen&gt;</td>
    <td>geometry="geometry", radius="double", sigma="double", bias="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>sharpen the image with a Gaussian operator of the given radius and standard deviation (sigma).</td>
  </tr>

  <tr>
    <td>&lt;shave&gt;</td>
    <td>geometry="geometry", width="integer", height="integer"</td>

    <td>shave pixels from the image edges</td>
  </tr>

  <tr>
    <td>&lt;shear&gt;</td>
    <td>geometry="geometry", x="double", y="double" fill="color name"</td>

    <td>shear the image along the X or Y axis by a positive or negative shear angle</td>
  </tr>

  <tr>
    <td><strike>sigmoidalcontrast</strike></td>
    <td>geometry="string", 'contrast'="double", 'mid-point'="double" channel="Red, RGB, All, etc.", sharpen="True, False"</td>

    <td>sigmoidal non-lineraity contrast control.  Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast" indicates how much to increase the contrast (0 is none; 3 is typical; 20 is a lot);  mid-point" indicates where midtones fall in the resultant image (0 is white; 50% is middle-gray; 100% is black). To decrease contrast, set sharpen to False.</td>
  </tr>

  <tr>
    <td>&lt;signature&gt;</td>

    <td> </td>
    <td>generate an SHA-256 message digest for the image pixel stream</td>
  </tr>

  <tr>
    <td><strike>sketch</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", angle="double"</td>

    <td>sketch the image with a Gaussian operator of the given radius and standard deviation (sigma) at the given angle</td>
  </tr>

  <tr>
    <td>&lt;solarize&gt;</td>
    <td>geometry="string", threshold="double", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>negate all pixels above the threshold level</td>
  </tr>

  <tr>
    <td><strike>sparsecolor</strike></td>
    <td>points="array of float values", method="Barycentric, Bilinear, Shepards, Voronoi", virtual-pixel="Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White"</td>

    <td>interpolate the image colors around the supplied points</td>
  </tr>

  <tr>
    <td><strike>splice</strike></td>
    <td>geometry="geometry", width="integer", height="integer", x="integer", y="integer", fuzz="double", background="color name", gravity="NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast"</td>

    <td>splice an image</td>
  </tr>

  <tr>
    <td>&lt;spread&gt;</td>
    <td>radius="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"</td>

    <td>displace image pixels by a random amount</td>
  </tr>

  <tr>
    <td><strike>statistic</strike></td>
    <td>geometry="geometry", width="integer", height="integer", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow", type="Median, Mode, Mean, Maximum, Minimum, ReduceNoise"</td>

    <td>replace each pixel with corresponding statistic from the neighborhood.</td>
  </tr>
  <tr>
    <td>&lt;stegano&gt;</td>
    <td>image="image-handle", offset="integer"</td>
    <td>hide a digital watermark within the image</td>

  </tr>

  <tr>
    <td>&lt;stereo&gt;</td>
    <td>image="image-handle", x="integer", y="integer"</td>
    <td>composites two images and produces a single image that is the composite of a left and right image of a stereo pair</td>

  </tr>

  <tr>
    <td>&lt;strip&gt;</td>
    <td> </td>
    <td>strip an image of all profiles and comments.</td>
  </tr>

  <tr>

    <td>&lt;swirl&gt;</td>
    <td>degrees="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"</td>
    <td>swirl image pixels about the center</td>
  </tr>

  <tr>

    <td><strike>texture</strike></td>
    <td>texture="image-handle"</td>
    <td>name of texture to tile onto the image background</td>
  </tr>

  <tr>
    <td><strike>thumbnail</strike></td>

    <td>geometry="geometry", width="integer", height="integer"</td>
    <td>changes the size of an image to the given dimensions and removes any associated profiles.</td>
  </tr>

  <tr>
    <td>&lt;threshold&gt;</td>

    <td>threshold="string", channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>
    <td>threshold the image</td>
  </tr>

  <tr>
    <td><strike>tint</strike></td>

    <td>fill="color name", blend="string"</td>
    <td>tint the image with the fill color.</td>
  </tr>

  <tr>
    <td>&lt;transparent&gt;</td>

    <td>color="color name", invert="True, False"</td>
    <td>make this color transparent within the image</td>
  </tr>

  <tr>
    <td><strike>transpose</strike></td>

    <td> </td>
    <td>flip image in the vertical direction and rotate 90 degrees</td>
  </tr>

  <tr>
    <td><strike>transverse</strike></td>
    <td> </td>
    <td>flop image in the horizontal direction and rotate 270 degrees</td>

  </tr>

  <tr>
    <td>&lt;trim&gt;</td>
    <td> </td>
    <td>remove edges that are the background color from the image</td>
  </tr>

  <tr>

    <td><strike>unsharpmask</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", gain="double", threshold="double"</td>
    <td>sharpen the image with the unsharp mask algorithm.</td>

  </tr>

  <tr>
    <td><strike>vignette</strike></td>
    <td>geometry="geometry", radius="double", sigma="double", x="integer", y="integer", background="color name"</td>

    <td>offset the edges of the image in vignette style</td>
  </tr>

  <tr>
    <td><strike>wave</strike></td>
    <td>geometry="geometry", amplitude="double", wavelength="double", interpolate="undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline"</td>

    <td>alter an image along a sine wave</td>
  </tr>

  <tr>
    <td><strike>whitethreshold</strike></td>
    <td>threshold="string", , channel="All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Opacity, Red, RGB, Yellow"</td>

    <td>force all pixels above the threshold intensity into white</td>
  </tr>
</tbody>
</table>
</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="architecture.html">Architecture</a>
</p>
    <p><a href="conjure.html#">Back to top</a> •
    <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
    <a href="http://www.imagemagick.org/script/contact.php">Contact Us</a></p>
        <p><small>©  1999-2016 ImageMagick Studio LLC</small></p>
  </footer>
</div><!-- /.container -->

  <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="../js/magick.html"></script>
</div>
</body>
</html>
