<!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">
<head>
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />
  <style type="text/css" media="screen,projection"><!--
    @import url("../../www/magick.css");
  --></style>
  <link rel="shortcut icon" href="../../images/wand.ico"  type="images/vnd.microsoft.icon"/>
  <title>ImageMagick: MagickCore, C API for ImageMagick: Draw on an Image</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="Generator" content="PHP"/>
  <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, draw, on, an, image, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
  <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="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-2009 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
</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="eastbar">

<div class="menu">
  <a href="../../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a href="../../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a href="../../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a href="../../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a href="../../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a href="../../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a href="../../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a href="../../Magick++/">Magick++</a>
</div>
<div class="menu">
  <a href="../../www/architecture.html">Architecture</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a href="../../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a href="../../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a href="../../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a href="../../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a href="../../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a href="../../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a href="../../www/binary-releases.html#windows">Windows</a>
</div>
<div class="menu">
  <a href="../../www/resources.html">Resources</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../http://www.imagemagick.org/script/search.php">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
    <a href="../../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a href="../../www/sponsors.html">Sponsors:</a>

<div class="sponsbox">
<div  class="sponsor">
   <a href="http://www.hygi.de">Reinigungsmittel</a><!-- 201002000400+ -->
</div>
<div  class="sponsor">
  <a href="http://www.online-kredit-index.de">Kredit</a><!-- 201003010120 Buchhorn -->
</div>
<div  class="sponsor">
  <a href="http://www.print24.de/">Druckerei</a><!-- 201009010720 -->
</div>
<div  class="sponsor">
   <a href="http://www.goyax.de">Börse</a><!-- 201001000240 Gewiese digital-finance.de -->
</div>
<div  class="sponsor">
   <a href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012001200 allesdruck.de-->
</div>
<div  class="sponsor">
  <a href="http://www.blumenversender.com">Blumenversand</a><!-- 200911010120 -->
</div>
<div  class="sponsor">
  <a href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 201002010000 -->
</div>
</div>
</div>


</div>

<div class="main">

<p class="navigation-index">[<a href="#AcquireDrawInfo">AcquireDrawInfo</a> &bull; <a href="#CloneDrawInfo">CloneDrawInfo</a> &bull; <a href="#DestroyDrawInfo">DestroyDrawInfo</a> &bull; <a href="#DrawAffineImage">DrawAffineImage</a> &bull; <a href="#DrawClipPath">DrawClipPath</a> &bull; <a href="#DrawImage">DrawImage</a> &bull; <a href="#DrawGradientImage">DrawGradientImage</a> &bull; <a href="#DrawPatternPath">DrawPatternPath</a> &bull; <a href="#DrawPrimitive">DrawPrimitive</a> &bull; <a href="#GetAffineMatrix">GetAffineMatrix</a>]</p>

<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="AcquireDrawInfo">AcquireDrawInfo</a></h2>
<div class="doc-section">

<p>AcquireDrawInfo() returns a DrawInfo structure properly initialized.</p></ol>

<p>The format of the AcquireDrawInfo method is:</p>

<pre class="code">
  DrawInfo *AcquireDrawInfo(void)
</pre>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="CloneDrawInfo">CloneDrawInfo</a></h2>
<div class="doc-section">

<p>CloneDrawInfo() makes a copy of the given draw info structure.  If NULL is specified, a new image info structure is created initialized to default values.</p></ol>

<p>The format of the CloneDrawInfo method is:</p>

<pre class="code">
  DrawInfo *CloneDrawInfo(const ImageInfo *image_info,
    const DrawInfo *draw_info)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image_info</h5>
<ol><p>the image info.</p></ol>

<h5>draw_info</h5>
<ol><p>the draw info.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DestroyDrawInfo">DestroyDrawInfo</a></h2>
<div class="doc-section">

<p>DestroyDrawInfo() deallocates memory associated with an DrawInfo structure.</p></ol>

<p>The format of the DestroyDrawInfo method is:</p>

<pre class="code">
  DrawInfo *DestroyDrawInfo(DrawInfo *draw_info)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>draw_info</h5>
<ol><p>the draw info.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DrawAffineImage">DrawAffineImage</a></h2>
<div class="doc-section">

<p>DrawAffineImage() composites the source over the destination image as dictated by the affine transform.</p></ol>

<p>The format of the DrawAffineImage method is:</p>

<pre class="code">
  MagickBooleanType DrawAffineImage(Image *image,const Image *source,
    const AffineMatrix *affine)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

<h5>source</h5>
<ol><p>the source image.</p></ol>

<h5>affine</h5>
<ol><p>the affine transform.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DrawClipPath">DrawClipPath</a></h2>
<div class="doc-section">

<p>DrawClipPath() draws the clip path on the image mask.</p></ol>

<p>The format of the DrawClipPath method is:</p>

<pre class="code">
  MagickBooleanType DrawClipPath(Image *image,const DrawInfo *draw_info,
    const char *name)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

<h5>draw_info</h5>
<ol><p>the draw info.</p></ol>

<h5>name</h5>
<ol><p>the name of the clip path.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DrawImage">DrawImage</a></h2>
<div class="doc-section">

<p>DrawImage() draws a graphic primitive on your image.  The primitive may be represented as a string or filename.  Precede the filename with an "at" sign (@) and the contents of the file are drawn on the image.  You can affect how text is drawn by setting one or more members of the draw info structure.</p></ol>

<p>The format of the DrawImage method is:</p>

<pre class="code">
  MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

<h5>draw_info</h5>
<ol><p>the draw info.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DrawGradientImage">DrawGradientImage</a></h2>
<div class="doc-section">

<p>DrawGradientImage() draws a linear gradient on the image.</p></ol>

<p>The format of the DrawGradientImage method is:</p>

<pre class="code">
  MagickBooleanType DrawGradientImage(Image *image,
    const DrawInfo *draw_info)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

<h5>_info</h5>
<ol><p>the draw info.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DrawPatternPath">DrawPatternPath</a></h2>
<div class="doc-section">

<p>DrawPatternPath() draws a pattern.</p></ol>

<p>The format of the DrawPatternPath method is:</p>

<pre class="code">
  MagickBooleanType DrawPatternPath(Image *image,const DrawInfo *draw_info,
    const char *name,Image **pattern)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

<h5>draw_info</h5>
<ol><p>the draw info.</p></ol>

<h5>name</h5>
<ol><p>the pattern name.</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="DrawPrimitive">DrawPrimitive</a></h2>
<div class="doc-section">

<p>DrawPrimitive() draws a primitive (line, rectangle, ellipse) on the image.</p></ol>

<p>The format of the DrawPrimitive method is:</p>

<pre class="code">
  MagickBooleanType DrawPrimitive(Image *image,const DrawInfo *draw_info,
    PrimitiveInfo *primitive_info)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

<h5>draw_info</h5>
<ol><p>the draw info.</p></ol>

<h5>primitive_info</h5>
<ol><p>Specifies a pointer to a PrimitiveInfo structure.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickCore/draw
_8c.html" target="source" name="GetAffineMatrix">GetAffineMatrix</a></h2>
<div class="doc-section">

<p>GetAffineMatrix() returns an AffineMatrix initialized to the identity matrix.</p></ol>

<p>The format of the GetAffineMatrix method is:</p>

<pre class="code">
  void GetAffineMatrix(AffineMatrix *affine_matrix)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>affine_matrix</h5>
<ol><p>the affine matrix.</p></ol>

 </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="../../www/mailing-list.html">Mailing Lists</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-2009 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>
</body>
</html>
