



<!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 - Download</title>
  <meta name="application-name" content="ImageMagick" />
  <meta name="description" content="ImageMagick® creates, edits, composes, and converts 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="download, 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-2019 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="Convert, Edit, or Compose Bitmap Images" />
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
  <link href="download.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>
  <header>
  <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 active">
        <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>
    <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>
    </div>
  </nav>
  <div class="container">
   <script async="async" src="https://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>
  </header>
  <main class="container">
    <div class="magick-template">
<div class="magick-header">
<p class="text-center"><a href="download.html#unix">Unix Binary Release</a> • <a href="download.html#macosx">Mac OS X Binary Release</a> • <a href="download.html#iOS">iOS Binary Release</a> • <a href="download.html#windows">Windows Binary Release</a></p>

<p class="lead magick-description">You can install ImageMagick from <a href="install-source.html">source</a>.  However, if you don't have a proper development environment or if you're anxious to get started, download a ready-to-run <a href="download.html#unix">Unix</a> or <a href="download.html#windows">Windows</a> executable.  Before you download, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.</p>

<p>ImageMagick source and binary distributions are available from a variety of FTP and Web <a href="mirror.html">mirrors</a> around the world.</p>

<h2><a class="anchor" id="unix"></a>Unix Binary Release</h2>

<p>These are the Unix variations that we support.  If your system is not on the list, try installing from <a href="install-source.html">source</a>. Although ImageMagick runs fine on a single core computer, it automagically runs in parallel on dual and quad-core systems reducing run times considerably.</p>

<div class="table-responsive"  style="font-size:87.5% !important;">
<table class="table table-sm table-striped">
  <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
  <tr>
    <th>Version</th>
    <th>HTTP</th>
    <th>FTP</th>
    <th>Description</th>
  </tr>

  <tr>
      <td>ImageMagick-7.0.8-63.x86_64.rpm</td>
      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.8-63.x86_64.rpm">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/x86_64/ImageMagick-7.0.8-63.x86_64.rpm">download</a></td>
    <td>Redhat / CentOS 7.1 x86_64 RPM</td>
  </tr>

  <tr>
      <td>ImageMagick-libs-7.0.8-63.x86_64.rpm</td>
      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-63.x86_64.rpm">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-63.x86_64.rpm">download</a></td>
    <td>Redhat / CentOS 7.1 x86_64 RPM</td>
  </tr>

  <tr>
    <td>ImageMagick RPM's</td>
    <td><a href="https://imagemagick.org/download/linux/CentOS">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS">download</a></td>
    <td>Development, Perl, C++, and documentation RPM's.</td>
  </tr>

  <tr>
    <td>ImageMagick-i386-pc-solaris2.11.tar.gz</td>
    <td><a href="https://imagemagick.org/download/binaries/ImageMagick-i386-pc-solaris2.11.tar.gz">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-i386-pc-solaris2.11.tar.gz">download</a></td>
    <td>Solaris Sparc 2.11</td>
  </tr>

  <tr>
    <td>ImageMagick-i686-pc-cygwin.tar.gz</td>
    <td><a href="https://imagemagick.org/download/binaries/ImageMagick-i686-pc-cygwin.tar.gz">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-i686-pc-cygwin.tar.gz">download</a></td>
    <td>Cygwin</td>
  </tr>

  <tr>
    <td>ImageMagick-i686-pc-mingw32.tar.gz</td>
    <td><a href="https://imagemagick.org/download/binaries/ImageMagick-i686-pc-mingw32.tar.gz">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-i686-pc-mingw32.tar.gz">download</a></td>
    <td>MinGW</td>
  </tr>
</table></div>

<p>Verify its <a href="https://imagemagick.org/download/binaries/digest.rdf">message digest</a>.</p>

<p>ImageMagick RPM's are self-installing.  Simply type the following command and you're ready to start using ImageMagick:</p>

<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.8-63.x86_64.rpm</span></pre><p>You'll need the libraries as well:</p>
<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.8-63.x86_64.rpm</span></pre>
<p>For other systems, create (or choose) a directory to install the package into and change to that directory, for example:</p>

<pre class="highlight"><code>cd $HOME</code></pre>

<p>Next, extract the contents of the package.  For example:</p>

<pre class="highlight"><code>tar xvzf ImageMagick.tar.gz</code></pre>

<p>Set the <code>MAGICK_HOME</code> environment variable to the path where you extracted the ImageMagick files. For example:</p>

<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>export MAGICK_HOME="$HOME/ImageMagick-7.0.8"</span></pre>
<p>If the <code>bin</code> subdirectory of the extracted package is not already in your executable search path, add it to your <code>PATH</code> environment variable. For example:</p>

<pre class="highlight"><code>export PATH="$MAGICK_HOME/bin:$PATH</code></pre>


<p>On Linux and Solaris machines add <code>$MAGICK_HOME/lib</code> to the <code>LD_LIBRARY_PATH</code> environment variable:</p>

<pre class="highlight"><code>LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MAGICK_HOME/lib
export LD_LIBRARY_PATH</code></pre>

<p>Finally, to verify ImageMagick is working properly, type the following on the command line:</p>

<pre class="highlight"><code>magick logo: logo.gif
identify logo.gif
display logo.gif</code></pre>

<p>Congratulations, you have a working ImageMagick distribution under Unix or Linux and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>

<h2><a class="anchor" id="macosx"></a>Mac OS X Binary Release</h2>

<p>We recommend <a href="http://www.macports.org">MacPorts</a> which custom builds ImageMagick in your environment (some users prefer <a href="http://brew.sh">Homebrew</a>).  Download MacPorts and type:</p>

<pre class="highlight"><code>sudo port install ImageMagick</code></pre>

<p>The <code>port</code> command downloads ImageMagick and many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc.) and configures, builds, and installs ImageMagick automagically.  Alternatively, you can download the ImageMagick Mac OS X distribution we provide:</p>

<div class="table-responsive"  style="font-size:87.5% !important;">
<table class="table table-sm table-striped">
  <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
  <tr>
    <th>Version</th>
    <th>HTTP</th>
    <th>FTP</th>
    <th>Description</th>
  </tr>

  <tr>
    <td>ImageMagick-x86_64-apple-darwin17.7.0.tar.gz</td>
    <td><a href="https://imagemagick.org/download/binaries/ImageMagick-x86_64-apple-darwin17.7.0.tar.gz">download</a></td>
    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-x86_64-apple-darwin17.7.0.tar.gz">download</a></td>
    <td>macOS High Sierra</td>
  </tr>
</table></div>

<p>Verify its <a href="https://imagemagick.org/download/binaries/digest.rdf">message digest</a>.</p>

<p>Create (or choose) a directory to install the package into and change to that directory, for example:</p>

<pre class="highlight"><code>cd $HOME</code></pre>

<p>Next, extract the contents of the package.  For example:</p>

<pre class="highlight"><code>tar xvzf ImageMagick-x86_64-apple-darwin17.2.0.tar.gz</code></pre>

<p>Set the <code>MAGICK_HOME</code> environment variable to the path where you extracted the ImageMagick files. For example:</p>

<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>export MAGICK_HOME="$HOME/ImageMagick-7.0.8"</span></pre>
<p>If the <code>bin</code> subdirectory of the extracted package is not already in your executable search path, add it to your <code>PATH</code> environment variable. For example:</p>

<pre class="highlight"><code>export PATH="$MAGICK_HOME/bin:$PATH"</code></pre>


<p>Set the <code>DYLD_LIBRARY_PATH</code> environment variable:</p>

<pre class="highlight"><code>export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"</code></pre>

<p>Finally, to verify ImageMagick is working properly, type the following on the command line:</p>

<pre class="highlight"><code>magick logo: logo.gif
identify logo.gif
display logo.gif</code></pre>

<p><b>Note</b>, the <a href="display.html">display</a> program requires the X11 server available on your Mac OS X installation DVD. Once that is installed, you will also need to set <code>export DISPLAY=:0</code>.</p>

<p>The best way to deal with all the exports is to put them at the end of your .profile file</p>

<p>Congratulations, you have a working ImageMagick distribution under Mac OS X and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>

<h2><a class="anchor" id="iOS"></a>iOS Binary Release</h2>

<p><a href="http://www.cloudgoessocial.net/2011/03/21/im-xcode4-ios4-3/">~Claudio</a> provides iOS builds of ImageMagick.</p>

<h5>Download iOS Distribution</h5>

<p>You can download the iOS distribution directly from ImageMagick's <a href="https://imagemagick.org/download/iOS">repository</a>.</p>

<p>There are always 2 packages for the compiled ImageMagick:</p>

<ul>
<li>iOSMagick-VERSION-libs.zip</li>
<li>iOSMagick-VERSION.zip</li>
</ul>

<p>The first one includes headers and compiled libraries that have been used to compile ImageMagick. Most users would need this one.</p>

<h5>ImageMagick compiling script for iOS OS and iOS Simulator</h5>

<p>To run the script:</p>
<pre class="highlight"><code>./imagemagick_compile.sh <var>VERSION</var></code></pre>
<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.8-63, svn, ...)</p>

<p>This script compiles ImageMagick as a static library to be included in iOS projects and adds support for</p>
<ul>
<li>png</li>
<li>jpeg</li>
<li>tiff</li>
</ul>

<p>Upon successful compilation a folder called <code>IMPORT_ME</code> is created on your <code>~/Desktop</code>. You can import it into your Xcode project.</p>

<h5>Xcode project settings</h5>

<p>After including everything into Xcode please also make sure to have these settings (Build tab of the project information):</p>
<ul>
<li>Other Linker Flags: -lMagickCore-Q16 -lMagickWand-Q16 -ljpeg -lpng -lbz2 -lz</li>
<li>Header Search Paths: $(SRCROOT) - make it Recursive</li>
<li>Library Search Paths: $(SRCROOT) - make it Recursive</li>
</ul>

<p>On the lower left click on the small-wheel and select: Add User-Defined Setting</p>
<ul>
<li>Key: OTHER_CFLAGS</li>
<li>Value: -Dmacintosh=1</li>
</ul>

<h5>Sample project</h5>

<p>A <a href="http://www.cloudgoessocial.net/im_iphone/IM_Test.zip">sample project </a> is available for download. It is not updated too often, but it does give an idea of all the settings and some ways to play around with ImageMagick in an iOS application.</p>

<h2><a class="anchor" id="windows"></a>Windows Binary Release</h2>

<p>ImageMagick runs on Windows 10 (x86 &amp; x64), Windows 8 (x86 &amp; x64), Windows 7 (x86 &amp; x64), Windows Server 2012, Windows XP (x86) with Service Pack 3, Windows Vista (x86 &amp; x64) with Service Pack 2, Windows Server 2003 (x86 &amp; x64) with Service Pack 2 (verify MSXML6 is present), Windows Server 2003 R2 (x86 &amp; x64), Windows Server 2008 (x86 &amp; x64) with Service Pack 2, and Windows Server 2008 R2 (x64).</p>

<p>The amount of memory can be an important factor, especially if you intend to work on large images.  A minimum of 512 MB of RAM is recommended, but the more RAM the better.  Although ImageMagick runs well on a single core computer, it automagically runs in parallel on multi-core systems reducing run times considerably.</p>

<p>The Windows version of ImageMagick is self-installing.  Simply click on the appropriate version below and it will launch itself and ask you a few installation questions.  Versions with <var>Q8</var> in the name are 8 bits-per-pixel component (e.g. 8-bit red, 8-bit green, etc.), whereas,  <var>Q16</var> in the filename are 16 bits-per-pixel component. A Q16 version permits you to read or write 16-bit images without losing precision but requires twice as much resources as the Q8 version.  Versions with <var>dll</var> in the filename include ImageMagick libraries as <a href="http://www.answers.com/topic/dll">dynamic link libraries</a>. Unless you have a Windows 32-bit OS, we recommend this version of ImageMagick for 64-bit Windows:</p>

<div class="table-responsive"  style="font-size:87.5% !important;">
<table class="table table-sm table-striped">
  <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
  <tr>
    <th>Version</th>
    <th>HTTP</th>
    <th>FTP</th>
    <th>Description</th>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-x64-dll.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-x64-dll.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-x64-dll.exe">download</a></td>
    <td>Win64 dynamic at 16 bits-per-pixel component</td>
  </tr>
</table></div>

<p>Or choose from these alternate Windows binary distributions:</p>

<div class="table-responsive"  style="font-size:87.5% !important;">
<table class="table table-sm table-striped">
  <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
  <tr>
    <th>Version</th>
    <th>HTTP</th>
    <th>FTP</th>
    <th>Description</th>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-x64-static.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-x64-static.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-x64-static.exe">download</a></td>
   <td>Win64 static at 16 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q8-x64-dll.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q8-x64-dll.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q8-x64-dll.exe">download</a></td>
   <td>Win64 dynamic at 8 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q8-x64-static.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q8-x64-static.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q8-x64-static.exe">download</a></td>
    <td>Win64 static at 8 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-HDRI-x64-dll.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x64-dll.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x64-dll.exe">download</a></td>
    <td>Win64 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-HDRI-x64-static.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x64-static.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x64-static.exe">download</a></td>
    <td>Win64 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-x86-dll.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-x86-dll.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-x86-dll.exe">download</a></td>
    <td>Win32 dynamic at 16 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-x86-static.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-x86-static.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-x86-static.exe">download</a></td>
    <td>Win32 static at 16 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q8-x86-dll.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q8-x86-dll.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q8-x86-dll.exe">download</a></td>
    <td>Win32 dynamic at 8 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q8-x86-static.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q8-x86-static.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q8-x86-static.exe">download</a></td>
    <td>Win32 static at 8 bits-per-pixel component</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-HDRI-x86-dll.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x86-dll.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x86-dll.exe">download</a></td>
    <td>Win32 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-Q16-HDRI-x86-static.exe</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x86-static.exe">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-Q16-HDRI-x86-static.exe">download</a></td>
    <td>Win32 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-portable-Q16-x86.zip</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-portable-Q16-x86.zip">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-portable-Q16-x86.zip">download</a></td>
    <td>Portable Win32 static at 16 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
  </tr>

  <tr>
        <td>ImageMagick-7.0.8-63-portable-Q16-x64.zip</td>
        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-63-portable-Q16-x64.zip">download</a></td>
      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-63-portable-Q16-x64.zip">download</a></td>
    <td>Portable Win64 static at 16 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
  </tr>
</table></div>

<p>Verify its <a href="https://imagemagick.org/download/binaries/digest.rdf">message digest</a>.</p>

<p>To verify ImageMagick is working properly, type the following in an Command Prompt window:</p>

<pre class="highlight"><code>magick logo: logo.gif
magick identify logo.gif
magick logo.gif win:</code></pre>

<p>If you have any problems, you likely need <code>vcomp120.dll</code>.  To install it, download <a href="https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads">Visual C++ Redistributable Package</a>.</p>

<p>Note, use a double quote (<code>"</code>) rather than a single quote (<code>'</code>) for the ImageMagick command line under Windows:</p>

<pre class="highlight"><code>magick "e:/myimages/image.png" "e:/myimages/image.jpg"</code></pre>
<p>Use two double quotes for VBScript scripts:</p>
<pre class="highlight"><code>Set objShell = wscript.createobject("wscript.shell")
objShell.Exec("magick ""e:/myimages/image.png"" ""e:/myimages/image.jpg""")</code></pre>

<p>Congratulations, you have a working ImageMagick distribution under Windows and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>

</div>
    </div>
  </main><!-- /.container -->
  <footer class="magick-footer">
    <p><a href="security-policy.html">Security</a> •
    <a href="architecture.html">Architecture</a>
     
    <a href="download.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/>
    <small>© 1999-2019 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.3.1/jquery.min.js"><\/script>')</script>
</body>
</html>
<!-- Magick Cache 2nd September 2019 13:14 -->