<!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="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4"/>
  <title>ImageMagick: Links</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 or transform images automagically."/>
  <meta name="application-url" content="http://www.imagemagick.org"/>
  <meta name="generator" content="PHP"/>
  <meta name="keywords" content="links, ImageMagick, PerlMagick, image processing, OpenMP, software development library, image, photo, software, Magick++, MagickWand"/>
  <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-2012 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="canonical" href="http://www.imagemagick.org" />
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>

  <!-- Add jQuery library -->
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
  
  <!-- Add mousewheel plugin (this is optional) -->
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
  
  <!-- Add fancyBox -->
  <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/jquery.fancybox.css?v=2.0.6" type="text/css" media="screen" />
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/jquery.fancybox.pack.js?v=2.0.6"></script>
  
  <!-- Optionally add helpers - button, thumbnail and/or media -->
  <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen" />
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
  
  <link rel="stylesheet" href="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen" />
  <script type="text/javascript" src="http://www.imagemagick.org/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=2.0.6"></script>
  
  <script type="text/javascript">
  	$(document).ready(function() {
  		$(".fancybox").fancybox();
  	});
  </script>

  <!-- ImageMagick style -->
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
</head>

<body id="www-imagemagick-org">

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'offline-script','//127.0.0.1/analytics.js','ga');

  ga('create', 'UA-40133312-1', 'imagemagick.org');
  ga('send', 'pageview');
</script>

<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://127.0.0.1/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="menu">
  <a title="Binary Releases" href="binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: iOS" href="binary-releases.html#iOS">iOS</a>
</div>
<div class="sub">
    <a title="Binary Release: Windows" href="binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Command-line Tools" href="command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="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="api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="magick++.html">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="search.html">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map" href="sitemap.html">Site Map</a>
</div>
<div  class="sub">
  <a title="Site Map: Links" href="links.html">Links</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Support ImageMagick Development" href="support.html">Support ImageMagick Development</a>
</div>
</div>

<div class="eastbar">
  <script type="text/javascript">
    /* <![CDATA[ */
    (function() {
        var po = document.createElement('offline-script'), t = document.getElementsByTagName('offline-script')[0];
        po.type = 'text/javascript';
        po.async = true;
        po.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
        var script = document.getElementsByTagName('offline-script')[0];
        script.parentNode.insertBefore(po, script);
    })();
    /* ]]> */
  </script>
  <div> <a class="FlattrButton" style="display:none;" rev="flattr;button:compact;" href="http://www.imagemagick.org/"></a></div>
  <noscript>
    <a href="http://flattr.com/thing/947300/Convert-Edit-And-Compose-Images" target="_blank">
    <img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" width="93" height="20" border="0" /></a>
  </noscript>
    <div class="g-plusone" id="gplusone"></div>
    <script type="text/javascript">
      /* <![CDATA[ */
      window.___gcfg = {
        lang: 'en-US'
      };

      (function() {
        var po = document.createElement('offline-script');
        po.type = 'text/javascript';
        po.async = true;
        po.src = 'https://127.0.0.1/js/plusone.js';
        var script = document.getElementsByTagName('offline-script')[0];
        script.parentNode.insertBefore(po, script);
      })();
      var gplusone = document.getElementById("gplusone");
      gplusone.setAttribute("data-size","medium");
      gplusone.setAttribute("data-count","true");
      /* ]]> */
    </script>
</div>

<div class="main">

<h1>ImageMagick Links</h1>
<p class="navigation-index">[<a href="links.html#command-line">Command-line Tutorials</a> &bull; <a href="links.html#program-interfaces">Program Interface Tutorials</a> &bull; <a href="links.html#techniques">ImageMagick Techniques</a> &bull; <a href="links.html#install">Installation Tutorials</a> &bull; <a href="links.html#topics">ImageMagick Topics</a> &bull; <a href="links.html#book-review">ImageMagick Book Review</a> &bull; <a href="links.html#mirrors">Web Site Mirrors</a> &bull; <a href="links.html#bank">Image Bank</a> &bull; <a href="links.html#projects">Projects that Utilize ImageMagick</a> &bull; <a href="links.html#other-projects">Other Projects</a>]</p>

<div class="doc-section">

<p>Listed here are a number of external web sites that are related to ImageMagick.  ImageMagick Studio does not maintain or endorse these sites, excepting the Wizard's Toolkit site, but we feel they are a helpfdl adjunct to the ImageMagick web site.</p>
</div>

<h2><a id="command-line"></a>Command-line Tutorials</h2>
<dl>
  <dd><a href="http://www.imagemagick.org/Usage/">Examples of ImageMagick Usage</a></dd>
  <dd><a href="http://www.linux.com/archive/articles/44594">Advanced image editing from the command line with ImageMagick</a></dd>
  <dd><a href="http://www.applematters.com/index.html/section/comments/1113/">Best Open Source Software for the Macintosh</a></dd>
  <dd><a href="http://www.builderau.com.au/program/linux/soa/Convert_images_with_open_source_ImageMagick/0,339028299,339271774,00.htm">Convert Images with Open Source ImageMagick</a></dd>
  <dd><a href="http://polishlinux.org/apps/graphics/enchanting-pictures-with-imagemagick/">Enchanting Pictures with ImageMagick</a></dd>
  <dd><a href="http://www-106.ibm.com/developerworks/library/l-graf/?ca=dnt-428">Graphics from the Command Line</a></dd>
  <dd><a href="http://www.ars-informatica.ca/article.html?article=22">Image creation, conversion and manipdlation with ImageMagick</a></dd>
  <dd><a href="http://www.applematters.com/index.html/section/comments/2104/">Image Editing for Power Users on the Mac</a></dd>
  <dd><a href="http://www.linux.com/archive/feature/113978">ImageMagick: A graphics wizard for the command line</a></dd>
  <dd><a href="http://www.ioncannon.net/linux/81/5-imagemagick-command-line-examples-part-1/">ImageMagick command line examples - part 1</a></dd>
  <dd><a href="http://www.ioncannon.net/linux/72/5-imagemagick-command-line-examples-part-2/">ImageMagick command line examples - part 2</a></dd>
  <dd><a href="http://www.jmagick.org">ImageMagick &amp; Java</a></dd>
  <dd><a href="http://www.jpeek.com/articles/linuxmag/0606.pdf">ImageMagick, Part One</a></dd>
  <dd><a href="http://www.jpeek.com/articles/linuxmag/0607.pdf">ImageMagick, Part Two</a></dd>
  <dd><a href="http://www-106.ibm.com/developerworks/library/l-graf2/?ca=dgr-lnxw15GraphicsLine">More Graphics from the Command Line</a></dd>
</dl>

<h2><a id="program-interfaces"></a>Program Interface Tutorials</h2>

<dl>
  <dd><a href="http://www.ibm.com/developerworks/opensource/library/os-mosaic/?ca=dgr-lnxw09MosaicImages">Create Mosaic Images with Perl and ImageMagick</a></dd>
  <dd><a href="http://articles.techrepublic.com.com/5100-10878_11-5924990.html">Convert images for printing with MagickWand for PHP</a></dd>
  <dd><a href="http://www.sitepoint.com/article/dynamic-images-imagemagick">Create Dynamic Images with ImageMagick</a></dd>
  <dd><a href="http://www.ioncannon.net/php/75/how-to-compile-imagemagick-for-php-by-hand/">How to compile ImageMagick for PHP by hand</a></dd>
  <dd><a href="http://members.shaw.ca/el.supremo/MagickWand/">MagickWand Examples in C</a></dd>
  <dd><a href="http://www.html-editors.com/contest/1/82-read.html">PHP Extensions: MagickWand for PHP</a></dd>
  <dd><a href="http://www.evolt.org/article/PHP_frontend_to_ImageMagick/17/55650/">PHP frontend to ImageMagick</a></dd>
  <dd><a href="http://www.ioncannon.net/php/61/php-imagemagick-magickwand-examples/">PHP ImageMagick MagickWand Examples</a></dd>
  <dd><a href="http://www.imagemagick.org/RMagick/doc/rvgtut.html">RVG - Ruby Vector Graphics</a></dd>
  <dd><a href="http://www.devshed.com/c/a/PHP/Security-Images-with-PHP-and-ImageMagick/">Security Images with PHP and ImageMagick</a></dd>
  <dd><a href="http://www.rubblewebs.co.uk/imagemagick/">Simple Uses of PHP and ImageMagick</a></dd>
</dl>

<h2><a id="install"></a>Installation Tutorials</h2>

<dl>
  <dd><a href="http://beta.bigmedium.com/blog/imagemagick-install-osx.shtml">Installing ImageMagick on Mac OS X</a></dd>
  <dd><a href="http://cactuslab.com/imagemagick/">ImageMagick Installer for Mac OS X</a></dd>
  <dd><a href="http://www.cloudgoessocial.net/2011/03/21/im-xcode4-ios4-3/">ImageMagick on iPhone</a></dd>
  <dd><a href="http://www.digitalsanctum.com/2009/03/18/installing-imagemagick-from-source-on-ubuntu-804/">Installing ImageMagick from Source on Ubuntu</a></dd>
</dl>

<h2><a id="techniques"></a>ImageMagick Techniques</h2>

<dl>
  <dd><a href="http://www.fmwconcepts.com/imagemagick/digital_image_filtering.pdf">Digital Image Filtering</a></dd>
  <dd><a href="http://www.xs4all.nl/%7Ebvdwolf/main/foto/down_sample/down_sample.htm">Down-sampling Methods</a></dd>
</dl>

<h2><a id="topics"></a>ImageMagick Topics</h2>
<dl>
  <dd><a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/graphics/ImageMagick/">FreeBSD port</a></dd> 
  <dd><a href="http://directory.fsf.org/project/ImageMagick/">Free Software Foundation</a></dd> 
  <dd><a href="http://freshmeat.net/projects/imagemagick">FreshMeat</a></dd> 
  <dd><a href="http://bugs.gentoo.org/buglist.cgi?quicksearch=imagemagick">Gentoo Sunrise</a> </dd> 
  <dd><a href="http://www.icewalkers.com/Linux/Software/58620/ImageMagick.html">IceWalkers</a> </dd> 
  <dd><a href="http://pkgsrc.se/graphics/ImageMagick/">NetBSD</a></dd> 
  <dd><a href="http://www.ohloh.net/p/ImageMagick">Ohloh</a></dd> 
  <dd><a href="http://bugzilla.redhat.com/buglist.cgi?quicksearch=ImageMagick">Red Hat Linux</a></dd> 
  <dd><a href="http://sourceforge.net/projects/imagemagick/">SourceForge</a></dd> 
  <dd><a href="http://en.wikipedia.org/wiki/ImageMagick">WikiPedia</a></dd> 
</dl>

<h2><a id="book-review"></a>ImageMagick Book Review</h2>
<dl>
  <dd><a href="http://www.linux.com/article.pl?sid=06/09/29/1917210">Book review: ImageMagick Tricks</a></dd>
  <dd><a href="http://books.slashdot.org/books/06/03/13/1442239.shtml">The Definitive Guide To ImageMagick</a></dd>
</dl>

<h2><a id="mirrors"></a>ImageMagick Web Site Mirrors</h2>
<dl>
  <dt>Denmark</dt>
    <dd><a href="http://imagemagick.europnews.de">http://imagemagick.europnews.de</a></dd>
  <dt>United States</dt>
    <dd><a href="http://www.imagemagick.org">http://www.imagemagick.org</a></dd>
</dl>

<h2><a id="bank"></a>Image Bank</h2>

<dl>
  <dd><a href="http://www.imagemagick.org/download/image-bank">Image Bank</a>: a small digital test image bank</dd>
</dl>

<h2><a id="projects"></a>Projects that Utilize ImageMagick</h2>

<dl>
  <dd><a href="http://gmic.sourceforge.net/">G'MIC</a>: convert, manipulate and visualize generic 1D/2D/3D multi-spectral image files</dd>
  <dd><a href="http://www.beesoft.org/index.html?id=imagicom">Image Commander</a>: bulk picture processing with a GUI</dd>
</dl>

<h2><a id="other-projects"></a>Other Projects</h2>
<dl>
  <dd><a href="https://github.com/puelocesar/android-lib-magick">ImageMagick API on the Android Platform</a></dd>
  <dd><a href="http://www.imagemagick.org/download/iOS">ImageMagick API on the iOS / iPhone  Platform</a></dd>
  <dd><a href="http://www.wizards-toolkit.org">Wizard's Toolkit</a></dd>
  <dd><a href="http://www.multipole.org">Computational Simulation of Multi-Body Interactions with O(n) Scaling</a></dd>
</dl>

</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> &bull;
      <a href="http://jqmagick.imagemagick.org/">JqMagick</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2013 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="contact.html">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
</body>
</html>
