<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]"> <meta name="Author" content="Bob Friesenhahn"> <meta name="Description" content="Description of DrawInfo structure members."> <title>ImageMagick DrawInfo Structure</title> </head> <body text="#000000" bgcolor="#FFFFFF" link="#1F00FF" vlink="#9900DD" alink="#FF0000"> <center> <h1> ImageMagick DrawInfo Structure</h1></center> The DrawInfo structure is used to support annotating an image using drawing commands. <br> <table BORDER WIDTH="100%" BGCOLOR="#CCCCCC" > <caption><b>Methods Supporting DrawInfo</b></caption> <tr> <td> <center><b>Method</b></center> </td> <td> <center><b>Description</b></center> </td> </tr> <tr> <td><a href="../draw.html#GetDrawInfo">GetDrawInfo()</a></td> <td>Allocate new structure with defaults set.</td> </tr> <tr> <td><a href="../draw.html#CloneDrawInfo">CloneDrawInfo()</a></td> <td>Copy existing structure, allocating new structure in the process.</td> </tr> <tr> <td><a href="../draw.html#DestroyDrawInfo">DestroyDrawInfo()</a></td> <td>Deallocate structure, including any members.</td> </tr> <tr> <td><a href="../draw.html#DrawImage">DrawImage()</a></td> <td>Render primitives to image.</td> </tr> </table> <p>The members of the DrawInfo structure are shown in the following table. The structure is initialized to reasonable defaults by first initializing the equivalent members of <a href="ImageInfo.html">ImageInfo</a>, and then initializing the entire structure using <a href="../draw.html#GetDrawInfo">GetDrawInfo().</a> <br> <table BORDER WIDTH="100%" BGCOLOR="#CCCCCC" > <caption><b>DrawInfo Structure Members Supporting DrawImage()</b></caption> <tr> <td> <center><b>Member</b></center> </td> <td> <center><b>Type</b></center> </td> <td> <center><b>Description</b></center> </td> </tr> <tr> <td>affine</td> <td><a href="AffineInfo.html">AffineInfo</a></td> <td>Coordinate transformation (rotation, scaling, and translation).</td> </tr> <tr> <td>border_color</td> <td><a href="PixelPacket.html">PixelPacket</a></td> <td>Border color</td> </tr> <tr> <td>box</td> <td><a href="PixelPacket.html">PixelPacket</a></td> <td>Text solid background color.</td> </tr> <tr> <td>decorate</td> <td>DecorationType</td> <td>Text decoration type.</td> </tr> <tr> <td>density</td> <td>char *</td> <td>Text rendering density in DPI (effects scaling font according to pointsize). E.g. "72x72"</td> </tr> <tr> <td>fill</td> <td><a href="PixelPacket.html">PixelPacket</a></td> <td>Object internal fill (within outline) color.</td> </tr> <tr> <td>font</td> <td>char *</td> <td>Font to use when rendering text.</td> </tr> <tr> <td>gravity</td> <td><a href="Enumerations.html#GravityType">GravityType</a></td> <td>Text placement preference (e.g. NorthWestGravity).</td> </tr> <tr> <td>linewidth</td> <td>double</td> <td>Stroke (outline) drawing width in pixels.</td> </tr> <tr> <td>pointsize</td> <td>double</td> <td>Font size (also see density).</td> </tr> <tr> <td>primitive</td> <td>char *</td> <td>Space or new-line delimited list of text drawing primitives (e.g "text 100,100 Cockatoo"). See the table <a href="#DrawingPrimitives">Drawing Primitives</a> for the available drawing primitives.</td> </tr> <tr> <td>stroke</td> <td><a href="PixelPacket.html">PixelPacket</a></td> <td>Object stroke (outline) color.</td> </tr> <tr> <td>stroke_antialias</td> <td>unsigned int</td> <td>Set to True (non-zero) to obtain anti-aliased stroke rendering.</td> </tr> <tr> <td>text_antialias</td> <td>unsigned int</td> <td>Set to True (non-zero) to obtain anti-aliased text rendering.</td> </tr> <tr> <td>tile</td> <td><a href="Image.html">Image</a> *</td> <td>Image texture to draw with. Use an image containing a single color (e.g. a 1x1 image) to draw in a solid color.</td> </tr> </table> <h3> <a NAME="DrawingPrimitives"></a>Drawing Primitives</h3> The drawing primitives shown in the following table may be supplied as a space or new-line deliminted list to the primitive member. Primitives which set drawing options effect the results from subsequent drawing operations. See the 'push graphic-context' and 'pop graphic-context' primitives for a way to control the propogation of drawing options. <br> <table BORDER WIDTH="100%" BGCOLOR="#CCCCCC" > <caption><b>Drawing Primitives</b></caption> <tr> <td> <center><b>Primitive</b></center> </td> <td> <center><b>Arguments</b></center> </td> <td> <center><b>Purpose</b></center> </td> </tr> <tr> <td>affine</td> <td>sx,rx,ry,sy,tx,ty</td> <td>Apply coordinate transformations to support scaling (s), rotation (r), and translation (t). Angles are specified in radians. Equivalent to SVG <i>matrix</i> command which supplies a transformation matrix.</td> </tr> <tr> <td>angle</td> <td>angle</td> <td>Specify object drawing angle.</td> </tr> <tr> <td>arc</td> <td>startX,startY endX,endY startDegrees,endDegrees</td> <td>Draw an arc.</td> </tr> <tr> <td>Bezier</td> <td>x1,y1, x2,y2, x3,y3, ..., xN,yN</td> <td>Draw a Bezier curve.</td> </tr> <tr> <td>circle</td> <td>originX,originY perimX,perimY</td> <td>Draw a circle.</td> </tr> <tr> <td>color</td> <td>x,y (point|replace|floodfill|filltoborder|reset)</td> <td>Set color in image according to specified colorization rule.</td> </tr> <tr> <td>decorate</td> <td>(none|underline|overline|line-through)</td> <td>Specify text decoration.</td> </tr> <tr> <td>ellipse</td> <td>originX,originY width,height arcStart,arcEnd</td> <td>Draw an ellipse.</td> </tr> <tr> <td>fill</td> <td>colorspec</td> <td>Specifiy object filling color.</td> </tr> <tr> <td>fill-opacity</td> <td>opacity</td> <td>Specify object fill opacity.</td> </tr> <tr> <td>font</td> <td>fontname</td> <td>Specify text drawing font.</td> </tr> <tr> <td>gravity</td> <td>(NorthWest|North|NorthEast|West|Center|East|SouthWest|South|SouthEast)</td> <td>Specify text positioning gravity.</td> </tr> <tr> <td>image</td> <td>x,y width,height filename</td> <td>Composite image at position, scaled to specified width and height, and specified filename. If width or height is zero, scaling is not performed.</td> </tr> <tr> <td>line</td> <td>startX,startY endX,endY</td> <td>Draw a line.</td> </tr> <tr> <td>matte</td> <td>x,y (point|replace|floodfill|filltoborder|reset)</td> <td>Set matte in image according to specified colorization rule.</td> </tr> <tr> <td>opacity</td> <td>fillOpacity strokeOpacity</td> <td>Specify drawing fill and stroke opacities.</td> </tr> <tr> <td>path</td> <td>'SVG-compatible path arguments'</td> <td>Draw using SVG-compatible path drawing commands.</td> </tr> <tr> <td>point</td> <td>x,y</td> <td>Set point to fill color.</td> </tr> <tr> <td>pointsize</td> <td>pointsize</td> <td>Specify text drawing pointsize (scaled to density).</td> </tr> <tr> <td>polygon</td> <td>x1,y1, x2,y2, x3,y3, ..., xN,yN</td> <td>Draw a polygon.</td> </tr> <tr> <td>polyline</td> <td>x1,y1, x2,y2, x3,y3, ..., xN,yN</td> <td>Draw a polyline.</td> </tr> <tr> <td>pop</td> <td>graphic-context</td> <td>Remove options set since previous "push graphic-context" command. Options revert to those in effect prior to pushing the graphic context.</td> </tr> <tr> <td>push</td> <td>graphic-context</td> <td>Specify new graphic context.</td> </tr> <tr> <td>rect</td> <td>upperLeftX,upperLeftY lowerRightX,lowerRightY</td> <td>Draw a rectangle.</td> </tr> <tr> <td>rotate</td> <td>angle</td> <td>Specify coordiante space rotation. Subsequent objects are drawn with coordate space rotated by specified angle. </td> </tr> <tr> <td>roundrectangle</td> <td>centerX,centerY width,hight cornerWidth,cornerHeight</td> <td>Draw a rectangle with rounded corners.</td> </tr> <tr> <td>stroke</td> <td>colorspec</td> <td>Specify object stroke (outline) color.</td> </tr> <tr> <td>stroke-antialias</td> <td>stroke_antialias (0 or 1)</td> <td>Specify if stroke should be antialiased or not.</td> </tr> <tr> <td>stroke-dash</td> <td>value</td> <td>Specify pattern to be used when drawing stroke.</td> </tr> <tr> <td>stroke-opacity</td> <td>opacity</td> <td>Specify opacity of stroke drawing color.</td> </tr> <tr> <td>stroke-width</td> <td>linewidth</td> <td>Specify stroke (outline) width in pixels.</td> </tr> <tr> <td>text</td> <td>x,y "some text"</td> <td>Draw text at position.</td> </tr> <tr> <td>text-antialias</td> <td>text_antialias (0 or 1)</td> <td>Specify if rendered text is to be antialiased (blend edges).</td> </tr> <tr> <td>scale</td> <td>x,y</td> <td>Specify scaling to be applied to coordintate space for subsequent drawing commands.</td> </tr> <tr> <td>translate</td> <td>x,y</td> <td>Specify center of coordinate space to use for subsequent drawing commands.</td> </tr> </table> <p> <hr> <p><a href="../../../ImageMagick.html"><img SRC="../../../images/home.png" ALT="Home Page" BORDER=0 height=40 width=40 align=MIDDLE></a><font size="-2"> Image manipulation software that works like magic.</font> </body> </html>