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

<div class="sponsbox">
<div  class="sponsor">
  <a title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201106010090 alexanian media -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201107010240 r.leo -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
</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: Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a><!-- 201104010090 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
   <a title="Sponsor: Free Catalogs" href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 20120801000600 -->
</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">

<h1>ImageMagick Sponsors</h1>
<p class="navigation-index">[<a href="#sponsor">Active ImageMagick Sponsors</a> &bull; <a href="#support">Support the ImageMagick Project</a>]</p>


<a id="sponsor"></a>
<h2>Active ImageMagick Sponsors</h2>
<div class="doc-section">

<p>We want to thank the sponsors of the ImageMagick project, including:</p>

<dl>
  <dd><a title="alaTest.com" href="http://alatest.com">alaTest.com </a></dd>
  <dd><a title="Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a></dd>
  <dd><a title="Custom T-Shirts" href="http://www.ooshirts.com">Custom T-Shirts</a></dd>
  <dd><a title="Druckerei" href="http://www.allesdruck.de">Druckerei</a></dd>
  <dd><a title="Druckerei" href="http://print24.com/de/">Druckerei</a></dd>
  <dd><a title="Fernsehdienst Berlin" href="http://www.atlas-multimedia.de">Fernsehdienst Berlin</a></dd>
  <dd><a title="Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a></dd>
  <dd><a title="Fototapete" href="http://www.allesdruck.de/Fototapete-Tapetendruck,category,8830.html">Fototapete</a></dd>
  <dd><a title="Free Catalogs" href="http://www.who-sells-it.com/">Free Catalogs</a></dd>
  <dd><a title="Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a></dd>
  <dd><a title="Notebook Reparatur Berlin" href="http://www.notebook-reparaturen-berlin.de">Notebook Reparatur Berlin</a></dd>
  <dd><a title="Webdesign" href="http://www.renehornig.com">Webdesign</a></dd>
  <dd><a title="Web Hosting" href="http://www.bodhost.com/hosting.shtml">Web Hosting</a></dd>
  <dd><a title="Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a></dd>
  <dd><a title="Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a></dd>
</dl>

</div>

<h2><a id="support"></a>Support the ImageMagick Project</h2>
<div class="doc-section">

<p>ImageMagick has been freely available since the early 1990's. It has consistently been one of the most comprehensive free image processing packages available, but, unlike competing packages, it continues to be supported and enhanced.  Today, ImageMagick is more comprehensive and better supported than ever.</p>
<p>ImageMagick has enjoyed considerable support from commercial users. Since ImageMagick is not restricted from use in commercial or proprietary applications, it is used to support thousands of commercial web sites and is used in professional digital image and movie studios as well as publishing shops. It is also used as a component of a number of commercial applications. Many of these commercial users have made contributions to ImageMagick, large and small, often anonymous, but always appreciated.</p>
<p>ImageMagick Studio LLC is now looking for sponsorship from individuals and companies which use ImageMagick, or which would like to help support free software. If you or your company depends on ImageMagick, sponsoring ImageMagick is a way to express your gratitude and to contribute back to the further development of ImageMagick.</p>
<p>ImageMagick sponsorship can take many forms. The following are some possibilities:</p>
<ul>
<li>Contribute source code or patches to help improve ImageMagick.</li>
<li>Send us a licensed copy of Microsoft Visual Studio 2010.</li>
<li>Send us a licensed copy of Adobe Photoshop.</li>
<li>Lend us developers to add support for additional image formats or to finish integrating support for the SVG specification.</li>
<li>Provide technical writers to assist with the development of commercial-grade technical documentation.</li>
<li>Donate a quality SWOP or Eurostandard ICC profile to use as a default CMYK to RGB conversion profile.</li>
<li>Donate a workstation with a modern processor and plenty of memory and disk.  We would use it for our primary development environment.</li>
<li>Donate an Apple Macbook Pro or desktop so we can build and test ImageMagick in the Apple Development environment.</li>
<li>Help us produce an error-free ImageMagick run-time environment with the donation of Purify, BoundsChecker, or Insure++.</li>
<li>Produce ImageMagick DVDs for distribution.</li>
<li>Make a monetary contribution:</li></ul>


<fieldset>
<legend>Support the ImageMagick Project</legend>
<form id="form" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<p>Sponsorships can be anonymous, or public. We are willing to provide recognition for significant sponsorships, and can provide links to the sponsor's web site. We reserve the right to refuse a sponsorship if we deem the site being sponsored as having inappropriate content. For direct monetary contributions, click on the donate button to contribute thru Paypal or with a credit card:</p>

<p>
  <input name="cmd" type="hidden" value="_xclick" />
  <input name="business" type="hidden" value="paypal@imagemagick.org" />
  <input name="item_name" type="hidden" value="ImageMagick Sponsorship" />
  <input name="no_shipping" type="hidden" value="2" />
  <input name="no_note" type="hidden" value="1" />
  <input name="tax" type="hidden" value="0" />
  <input name="bn" type="hidden" value="PP-DonationsBF" />
  <input name="charset" type="hidden" value="UTF-8" />

  <button style="border:none; background: white;" type="submit" name="submit"><img alt="Support ImageMagick" src="../images/donate.png" width="110" height="23" />
  </button>

 </p>


<p>or send a check or money order in US funds to</p>
<pre class="text">
  ImageMagick Studio LLC
  P.O. Box 40
  Landenberg, PA  19350
  USA
</pre>
</form>
</fieldset>

<p>Donate $25 USD and we acknowledge your gift with a <a href="../www/t-shirt.html">logoed t-shirt</a> (you must request the shirt to receive it).</p>

<p>If you have any questions about sponsoring ImageMagick, please <a href="http://www.imagemagick.org/script/contact.php">contact us</a>.
</p>


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