<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
  <title>ImageMagick: Downloads</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="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.  ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems.  The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
  <meta name="Application-url" content="http://www.imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="downloads, 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-2010 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"  sizes="32x32"/>
  <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"/>
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<a href="../index.html">
  <img src="../images/script.png" alt="[ImageMagick]"
  style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin: 45px auto; border: 0px; float: left;" /></a>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg" alt=""
  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: 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="../Magick++/">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="http://www.imagemagick.org/script/search.php">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 title="Sponsors" href="../www/sponsors.html">Sponsors:</a>

<div class="sponsbox">
<div  class="sponsor">
   <a title="Sponsor: Free Catalogs" href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 20120801000600 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
</div>
<div  class="sponsor">
  <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
</div>
<div  class="sponsor">
  <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
</div>
</div>
</div>
</div>

<div class="eastbar">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "0574824969";
    google_ad_width = 160;
    google_ad_height = 600;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>

<div class="main">

<p class="navigation-index"></p>
<p>ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world listed below.  ImageMagick stable and development source releases are also available from <a href="../www/subversion.html">Subversion</a>.  Before you download, you may want to review recent <a href="../www/changelog.html">changes</a> to the ImageMagick distribution.</p>
<p>The latest release of ImageMagick is version 6.6.6-2.</p>
<dl class="doc">
  <dt class="doc">Australia</dt>
    <dd><a href="ftp://mirror.aarnet.edu.au/pub/ImageMagick/">ftp://mirror.aarnet.edu.au/pub/ImageMagick/</a></dd>
  <dt class="doc">Austria</dt>
    <dd><a href="ftp://gd.tuwien.ac.at/pub/graphics/ImageMagick/">ftp://gd.tuwien.ac.at/pub/graphics/ImageMagick/</a></dd>
  <dt class="doc">Germany</dt>
    <dd><a href="http://image_magick.veidrodis.com/image_magick/">http://image_magick.veidrodis.com/image_magick/</a></dd>
  <dt class="doc">Japan</dt>
    <dd><a href="ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/">ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/</a></dd>
    <dd><a href="ftp://ftp.u-aizu.ac.jp/pub/graphics/images/ImageMagick/imagemagick.org">ftp://ftp.u-aizu.ac.jp/pub/graphics/images/ImageMagick/imagemagick.org</a></dd>
  <dt class="doc">Netherlands</dt>
    <dd><a href="ftp://ftp.nluug.nl/pub/ImageMagick">ftp://ftp.nluug.nl/pub/ImageMagick</a></dd>
    <dd><a href="http://ftp.surfnet.nl/pub/ImageMagick/">http://ftp.surfnet.nl/pub/ImageMagick/</a></dd>
  <dt class="doc">Poland</dt>
    <dd><a href="ftp://sunsite.icm.edu.pl/packages/ImageMagick/">ftp://sunsite.icm.edu.pl/packages/ImageMagick/</a></dd>
    <dd><a href="ftp://ftp.tpnet.pl/pub/graphics/ImageMagick/">ftp://ftp.tpnet.pl/pub/graphics/ImageMagick/</a></dd>
    <dd><a href="rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/">rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/</a></dd>
  <dt class="doc">Russian Federation</dt>
    <dd><a href="ftp://ftp.chg.ru/packages/ImageMagick">ftp://ftp.chg.ru/packages/ImageMagick</a></dd>
    <dd><a href="http://ftp.chg.ru/packages/ImageMagick">http://ftp.chg.ru/packages/ImageMagick</a></dd>
  <dt class="doc">Sweden</dt>
    <dd><a href="ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick">ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick</a></dd>
  <dt class="doc">South Africa</dt>
    <dd><a href="http://mirror.is.co.za/pub/imagemagick/">http://mirror.is.co.za/pub/imagemagick/</a></dd>
    <dd><a href="ftp://ftp.is.co.za/pub/imagemagick">ftp://ftp.is.co.za/pub/imagemagick</a></dd>
  <dt class="doc">United States</dt>
    <dd><a href="http://www.imagemagick.technocozy.com/">http://www.imagemagick.technocozy.com/</a> (web site mirror)</dd>
    <dd><a href="ftp://ftp.fifi.org/pub/ImageMagick/">ftp://ftp.fifi.org/pub/ImageMagick/</a></dd>
    <dd><a href="ftp://ftp.imagemagick.org/pub/ImageMagick">ftp://ftp.imagemagick.org/pub/ImageMagick</a></dd>
    <dd><a href="ftp://ftp.imagemagick.net/pub/ImageMagick">ftp://ftp.imagemagick.net/pub/ImageMagick</a></dd>
    <dd><a href="http://sourceforge.net/projects/imagemagick/">http://sourceforge.net/projects/imagemagick/</a> (legacy releases)</dd>
  <dt class="doc">Platform Specific Binaries </dt>
    <dd><a href="http://hpux.connect.org.uk/hppd/hpux/X11/Viewers/">http://hpux.connect.org.uk/hppd/hpux/X11/Viewers/</a> (HP-UX 10.20 and 11.00)</dd>
    <dd><a href="http://www.entropy.ch/software/macosx/#imagemagick">http://www.entropy.ch/software/macosx/#imagemagick/</a> (Mac OS X 10.2 and 10.3)</dd>
    <dd><a href="http://www.sunfreeware.com/">http://www.sunfreeware.com/</a> (SPARC/Solaris 2.5-10 and x86/Solaris 8-10)</dd>
  <dt class="doc">Rsync Mirrors </dt>
    <dd><a href="rsync://rsync.is.co.za/IS-Mirror/mirror.imagemagick.org/">rsync://rsync.is.co.za/IS-Mirror/mirror.imagemagick.org/</a></dd>
    <dd><a href="rsync://rsync.fifi.org/ImageMagick">rsync://rsync.fifi.org/ImageMagick</a></dd>
    <dd><a href="rsync://mirror.imagemagick.org/magick_html">rsync://mirror.imagemagick.org/magick_html/</a> (Web site mirror)</dd>
    <dd><a href="rsync://mirror.imagemagick.org/magick_ftp">rsync://mirror.imagemagick.org/magick_ftp/</a> (FTP mirror)</dd>
    <dd><a href="rsync://mirror.imagemagick.org/magick_svn">rsync://mirror.imagemagick.org/magick_svn/</a> (Subversion repository mirror)</dd>
</dl>
<p>If you want to add a new mirror, please <a href="http://www.imagemagick.org/script/contact.php">contact us</a>.</p>

</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-2010 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>
