Home | History | Annotate | Download | only in www
      1 
      2 
      3 
      4 
      5 <!DOCTYPE html>
      6 <html lang="en">
      7 <head>
      8     <title>ImageMagick: Magick Vector Graphics</title>
      9   <meta charset="utf-8" />
     10   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     11   <meta name="viewport" content="width=device-width, initial-scale=1" />
     12   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
     13   <meta name="application-name" content="ImageMagick"/>
     14   <meta name="description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bzier curves."/>
     15   <meta name="application-url" content="http://www.imagemagick.org"/>
     16   <meta name="generator" content="PHP"/>
     17   <meta name="keywords" content="magick, vector, graphics, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
     18   <meta name="rating" content="GENERAL"/>
     19   <meta name="robots" content="INDEX, FOLLOW"/>
     20   <meta name="generator" content="ImageMagick Studio LLC"/>
     21   <meta name="author" content="ImageMagick Studio LLC"/>
     22   <meta name="revisit-after" content="2 DAYS"/>
     23   <meta name="resource-type" content="document"/>
     24   <meta name="copyright" content="Copyright (c) 1999-2016 ImageMagick Studio LLC"/>
     25   <meta name="distribution" content="Global"/>
     26   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
     27   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
     28   <link rel="icon" href="../images/wand.png"/>
     29   <link rel="shortcut icon" href="../images/wand.ico"/>
     30   <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:900,400,400italic,700,700italic,300,300italic|Open+Sans:300italic,400italic,700italic,300,400,600,700">
     31   <link rel="stylesheet" href="css/magick.css"/>
     32 </head>
     33 <body>
     34 <div class="main">
     35 <div class="magick-masthead">
     36   <div class="container">
     37     <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
     38          style="display:block"
     39          data-ad-client="ca-pub-3129977114552745"
     40          data-ad-slot="6345125851"
     41          data-ad-format="auto"></ins>
     42     <script>
     43       (adsbygoogle = window.adsbygoogle || []).push({});
     44     </script>
     45     <nav class="magick-nav">
     46       <a class="magick-nav-item " href="../index.html">Home</a>
     47       <a class="magick-nav-item " href="binary-releases.html">Download</a>
     48       <a class="magick-nav-item " href="command-line-tools.html">Tools</a>
     49       <a class="magick-nav-item " href="command-line-processing.html">Command-line</a>
     50       <a class="magick-nav-item " href="resources.html">Resources</a>
     51       <a class="magick-nav-item " href="api.html">Develop</a>
     52       <a class="magick-nav-item " href="http://www.imagemagick.org/script/search.php">Search</a>
     53       <a class="magick-nav-item pull-right" href="https://www.imagemagick.org/discourse-server/">Community</a>
     54     </nav>
     55   </div>
     56 </div>
     57 <div class="container">
     58 <div class="magick-header">
     59 <p class="text-center"><a href="http://www.imagemagick.org/www/magick-vector-graphics.html#overview">MVG Overview</a>  <a href="http://www.imagemagick.org/www/magick-vector-graphics.html#primitives">Drawing Primitives</a></p>
     60 
     61 <p class="lead magick-description">This specification defines the features and syntax for Magick Vector Graphics (MVG), a modularized language for describing two-dimensional vector and mixed vector/raster graphics in ImageMagick.  You can use the language to draw from the
     62 command line, from an MVG file, from an <a href="http://www.w3.org/TR/SVG/">SVG -- Scalable Vector Graphics</a> file or from one of the ImageMagick <a href="http://www.imagemagick.org/www/api.html">program interfaces</a>.  Use this command, for example, to render an arc:</p>
     63 
     64 <pre>
     65 convert -size 100x60 canvas:skyblue -fill white -stroke black \
     66   -draw "path \'M 30,40  A 30,20  20  0,0 70,20 A 30,20  20  1,0 30,40 Z \'" \
     67   arc.png');
     68 </pre>
     69 
     70 <p>and here is the result:</p>
     71 
     72 <ul>
     73   <a href="../images/arc.png"><img src="../images/arc.png" width="100" height="60" alt="arc"></a>
     74 </ul>
     75 
     76 <p>When the drawing gets sufficiently complex, we recommend you assemble the graphic primitives into a MVG file. For our example, we use <a href="../source/piechart.mvg">piechart.mvg</a>:</p>
     77 
     78 <pre class="pre-scrollable">push graphic-context
     79   viewbox 0 0 624 369
     80   affine 0.283636 0 0 0.283846 -0 -0
     81   push graphic-context
     82     push graphic-context
     83       fill 'darkslateblue'
     84       stroke 'blue'
     85       stroke-width 1
     86       rectangle 1,1 2199,1299
     87     pop graphic-context
     88     push graphic-context
     89       font-size 40
     90       fill 'white'
     91       stroke-width 1
     92       text 600,1100 'Average: 20.0'
     93     pop graphic-context
     94     push graphic-context
     95       fill 'red'
     96       stroke 'black'
     97       stroke-width 5
     98       path 'M700.0,600.0 L340.0,600.0 A360.0,360.0 0 0,1 408.1452123287954,389.2376150414973 z'
     99     pop graphic-context
    100     push graphic-context
    101       font-size 40
    102       fill 'white'
    103       stroke-width 1
    104       text 1400,140 'MagickWand for PHP'
    105     pop graphic-context
    106     push graphic-context
    107       font-size 30
    108       fill 'white'
    109       stroke-width 1
    110       text 1800,140 '(10.0%)'
    111     pop graphic-context
    112     push graphic-context
    113       fill 'red'
    114       stroke 'black'
    115       stroke-width 4
    116       rectangle 1330,100 1370,140
    117     pop graphic-context
    118     push graphic-context
    119       fill 'yellow'
    120       stroke 'black'
    121       stroke-width 5
    122       path 'M700.0,600.0 L408.1452123287954,389.2376150414973 A360.0,360.0 0 0,1 976.5894480359858,369.56936567559273 z'
    123     pop graphic-context
    124     push graphic-context
    125       font-size 40
    126       fill 'white'
    127       stroke-width 1
    128       text 1400,220 'MagickCore'
    129     pop graphic-context
    130     push graphic-context
    131       font-size 30
    132       fill 'white'
    133       stroke-width 1
    134       text 1800,220 '(29.0%)'
    135     pop graphic-context
    136     push graphic-context
    137       fill 'yellow'
    138       stroke 'black'
    139       stroke-width 4
    140       rectangle 1330,180 1370,220
    141     pop graphic-context
    142     push graphic-context
    143       fill 'fuchsia'
    144       stroke 'black'
    145       stroke-width 5
    146       path 'M700.0,600.0 L976.5894480359858,369.56936567559273 A360.0,360.0 0 0,1 964.2680466142854,844.4634932636567 z'
    147     pop graphic-context
    148     push graphic-context
    149       font-size 40
    150       fill 'white'
    151       stroke-width 1
    152       text 1400,300 'MagickWand'
    153     pop graphic-context
    154     push graphic-context
    155       font-size 30
    156       fill 'white'
    157       stroke-width 1
    158       text 1800,300 '(22.9%)'
    159     pop graphic-context
    160     push graphic-context
    161       fill 'fuchsia'
    162       stroke 'black'
    163       stroke-width 4
    164       rectangle 1330,260 1370,300
    165     pop graphic-context
    166     push graphic-context
    167       fill 'blue'
    168       stroke 'black'
    169       stroke-width 5
    170       path 'M700.0,600.0 L964.2680466142854,844.4634932636567 A360.0,360.0 0 0,1 757.853099990584,955.3210081341651 z'
    171     pop graphic-context
    172     push graphic-context
    173       font-size 40
    174       fill 'white'
    175       stroke-width 1
    176       text 1400,380 'JMagick'
    177     pop graphic-context
    178     push graphic-context
    179       font-size 30
    180       fill 'white'
    181       stroke-width 1
    182       text 1800,380 '(10.6%)'
    183     pop graphic-context
    184     push graphic-context
    185       fill 'blue'
    186       stroke 'black'
    187       stroke-width 4
    188       rectangle 1330,340 1370,380
    189     pop graphic-context
    190     push graphic-context
    191       fill 'lime'
    192       stroke 'black'
    193       stroke-width 5
    194       path 'M700.0,600.0 L757.853099990584,955.3210081341651 A360.0,360.0 0 0,1 340.0,600.0 z'
    195     pop graphic-context
    196     push graphic-context
    197       font-size 40
    198       fill 'white'
    199       stroke-width 1
    200       text 1400,460 'Magick++'
    201     pop graphic-context
    202     push graphic-context
    203       font-size 30
    204       fill 'white'
    205       stroke-width 1
    206       text 1800,460 '(27.5%)'
    207     pop graphic-context
    208     push graphic-context
    209       fill 'lime'
    210       stroke 'black'
    211       stroke-width 4
    212       rectangle 1330,420 1370,460
    213     pop graphic-context
    214     push graphic-context
    215       font-size 100
    216       fill 'white'
    217       stroke-width 1
    218       text 100,150 'ImageMagick'
    219     pop graphic-context
    220     push graphic-context
    221       fill 'none'
    222       stroke 'black'
    223       stroke-width 5
    224       circle 700,600 700,960
    225     pop graphic-context
    226   pop graphic-context
    227 pop graphic-context
    228 </pre>
    229 
    230 <p>to render a pie chart with this command:</p>
    231 
    232 <pre>
    233 convert mvg:piechart.mvg piechart.png
    234 </pre>
    235 
    236 <p>which produces this rendering:</p>
    237 
    238 <ul>
    239   <a href="../images/piechart.png"><img src="../images/piechart.png" width="624" height="369" alt="piechart"></a>
    240 </ul>
    241 
    242 <p>However, in general, MVG is sufficiently difficult to work with that you probably want to use a program to generate your graphics in the SVG format.  ImageMagick automagically converts SVG to MVG and renders your image, for example, we render <a href="../source/piechart.svg">piechart.svg</a> with this command:</p>
    243 
    244 <pre>
    245 convert mvg:piechart.svg piechart.jpg
    246 </pre>
    247 
    248 
    249 <p>to produce the same pie chart we created with the MVG language.</p>
    250 
    251 <p>Drawing is available from many of the ImageMagick <a href="http://www.imagemagick.org/www/api.html">program interfaces</a> as well.  ImageMagick converts the drawing API calls to MVG and renders it.  Here is example code written in the <a href="http://www.imagemagick.org/www/magick-wand.html">MagickWand</a> language: </p>
    252 
    253 <pre class="pre-scrollable">(void) PushDrawingWand(draw_wand);
    254 {
    255   const PointInfo points[6] =
    256   {
    257     { 180,504 },
    258     { 282.7,578.6 },
    259     { 243.5,699.4 },
    260     { 116.5,699.4 },
    261     { 77.26,578.6 },
    262     { 180,504 }
    263   };
    264 
    265   DrawSetStrokeAntialias(draw_wand,True);
    266   DrawSetStrokeWidth(draw_wand,9);
    267   DrawSetStrokeLineCap(draw_wand,RoundCap);
    268   DrawSetStrokeLineJoin(draw_wand,RoundJoin);
    269   (void) DrawSetStrokeDashArray(draw_wand,0,(const double *)NULL);
    270   (void) PixelSetColor(color,"#4000c2");
    271   DrawSetStrokeColor(draw_wand,color);
    272   DrawSetFillRule(draw_wand,EvenOddRule);
    273   (void) PixelSetColor(color,"#800000");
    274   DrawSetFillColor(draw_wand,color);
    275   DrawPolygon(draw_wand,6,points);
    276 }
    277 (void) PopDrawingWand(draw_wand);
    278 </pre>
    279 
    280 <h2 class="magick-header"><a id="overview"></a>MVG Overview</h2>
    281 
    282 <p>MVG ignores all white-space between commands. This allows multiple MVG commands per line. It is common convention to terminate each MVG command with a new line to make MVG easier to edit and read. This syntax description uses indentation in MVG sequences to aid with understanding. Indentation is supported but is not required.</p>
    283 
    284 <p>Metafile wrapper syntax (to support stand-alone MVG files):</p>
    285 
    286 <pre>
    287 push graphic-context
    288   viewbox 0 0 width height
    289   [ any other MVG commands ]
    290 pop graphic-context
    291 </pre>
    292 
    293 <p>Pattern syntax (saving and restoring context):</p>
    294 
    295 <pre>
    296 push pattern id x,y width,height
    297  push graphic-context
    298   [ drawing commands ]
    299  pop graphic-context
    300 pop pattern
    301 </pre>
    302 
    303 <p>an example is (%s is a identifier string):</p>
    304 
    305 <pre>
    306 push defs
    307  push pattern %s 10,10 20,20
    308   push graphic-context
    309    fill red
    310    rectangle 5,5 15,15
    311   pop graphic-context
    312   push graphic-context
    313    fill green
    314    rectangle 10,10 20,20
    315   pop graphic-context
    316  pop pattern
    317 pop defs
    318 </pre>
    319 
    320 <p>For image tiling use:</p>
    321 
    322 <pre>
    323 push pattern id x,y width,height
    324  image Copy ...
    325 pop pattern
    326 </pre>
    327 
    328 <p>Note you can use the pattern for either the fill or stroke like:</p>
    329 
    330 <pre>
    331 stroke url(#%s)
    332 </pre>
    333 
    334 <p>or</p>
    335 
    336 <pre>
    337 fill url(#%s)
    338 </pre>
    339 
    340 <p>The clip path defines a clipping area, where only the contained area to be drawn upon.  Areas outside of the clipping areare masked.</p>
    341 
    342 <pre>
    343 push defs
    344  push clip-path %s
    345   push graphic-context
    346    rectangle 10,10 20,20
    347   pop graphic-context
    348  pop clip-path
    349 pop defs
    350 clip-path url(#%s)
    351 </pre>
    352 
    353 <h2 class="magick-header"><a id="primitives"></a>Drawing Primitives</h2>
    354 
    355 <p>Here is a complete description of the MVG drawing primitives:</p>
    356 
    357 <div class="table-responsive">
    358 <table class="table table-condensed table-striped">
    359   <tr>
    360     <th>Primitive</th>
    361     <th>Description</th>
    362   </tr>
    363   <tr>
    364     <td><a id="affine"></a>affine <var>s<sub>x</sub></var>,<var>r<sub>x</sub></var>,<var>r<sub>y</sub></var>,<var>s<sub>y</sub></var>,<var>t<sub>x</sub></var>,<var>t<sub>y</sub></var></td>
    365     <td></td>
    366   </tr>
    367   <tr>
    368     <td><a id="arc"></a>arc <var>x<sub>0</sub></var>,<var>y<sub>0</sub></var>   <var>x<sub>1</sub></var>,<var>y<sub>1</sub></var>   <var>a<sub>0</sub></var>,<var>a<sub>1</sub></var></td>
    369     <td></td>
    370   </tr>
    371   <tr>
    372     <td><a id="bezier"></a>bezier <var>x<sub>0</sub></var>,<var>y<sub>0</sub></var> ... <var>x<sub>n</sub></var>,<var>y<sub>n</sub></var></td>
    373     <td><code>Bezier</code> (spline) requires three or more x,y coordinates to define its shape. The first and last points are the knots (preserved coordinates) and any intermediate coordinates are the control points. If two control points are specified, the line between each end knot and its sequentially respective control point determines the tangent direction of the curve at that end. If one control point is specified, the lines from the end knots to the one control point determines the tangent directions of the curve at each end. If more than two control points are specified, then the additional control points act in combination to determine the intermediate shape of the curve. In order to draw complex curves, it is highly recommended either to use the <code>Path</code> primitive or to draw multiple four-point bezier segments with the start and end knots of each successive segment repeated. </td>
    374   </tr>
    375   <tr>
    376     <td><a id="border-color"></a>border-color <var>color</var></td>
    377     <td></td>
    378   </tr>
    379   <tr>
    380     <td><a id="circle"></a>circle <var>origin<sub>x</sub></var>,<var>origin<sub>y</sub></var>   <var>perimeter<sub>x</sub></var>,<var>perimeter<sub>y</sub></var></td>
    381     <td></td>
    382   </tr>
    383   <tr>
    384     <td><a id="clip-path"></a>clip-path url(<var>name</var>)</td>
    385     <td></td>
    386   </tr>
    387   <tr>
    388     <td><a id="clip-rule"></a>clip-rule <var>rule</var></td>
    389     <td>Choose from these rule types:
    390 <pre>evenodd
    391 nonzero</pre></td>
    392   </tr>
    393   <tr>
    394     <td><a id="clip-units"></a>clip-units <var>units</var></td>
    395     <td>Choose from these unit types:
    396 <pre>userSpace
    397 userSpaceOnUse
    398 objectBoundingBox</pre></td>
    399   </tr>
    400   <tr>
    401     <td><a id="color"></a>color <var>x</var>,<var>y</var> <var>method</var></td>
    402     <td>Choose from these method types:
    403 <pre>point
    404 replace
    405 floodfill
    406 filltoborder
    407 reset</pre></td>
    408   </tr>
    409   <tr>
    410     <td><a id="decorate"></a>decorate <var>type</var></td>
    411     <td>Choose from these types of decorations:
    412 <pre>none
    413 line-through
    414 overline
    415 underline</pre></td>
    416   </tr>
    417   <tr>
    418     <td><a id="ellipse"></a>ellipse <var>center<sub>x</sub></var>,<var>center<sub>y</sub></var>   <var>radius<sub>x</sub></var>,<var>radius<sub>y</sub></var>   <var>arc<sub>start</sub></var>,<var>arc<sub>stop</sub></var></td>
    419     <td></td>
    420   </tr>
    421   <tr>
    422     <td><a id="fill"></a>fill <var>color</var></td>
    423     <td>Choose from any of these <a href="http://www.imagemagick.org/www/color.html">colors</a>.</td>
    424   </tr>
    425   <tr>
    426     <td><a id="fill-opacity"></a>fill-opacity <var>opacity</var></td>
    427     <td>The opacity ranges from 0.0 (fully transparent) to 1.0 (fully opaque) or as a percentage (e.g. 50%).</td>
    428   </tr>
    429   <tr>
    430     <td><a id="fill-rule"></a>fill-rule <var>rule</var></td>
    431     <td>Choose from these rule types:
    432 <pre>evenodd
    433 nonzero</pre></td>
    434   </tr>
    435   <tr>
    436     <td><a id="font"></a>font <var>name</var></td>
    437     <td></td>
    438   </tr>
    439   <tr>
    440     <td><a id="font-family"></a>font-family <var>family</var></td>
    441     <td></td>
    442   </tr>
    443   <tr>
    444     <td><a id="font-size"></a>font-size <var>point-size</var></td>
    445     <td></td>
    446   </tr>
    447   <tr>
    448     <td><a id="font-stretch"></a>font-stretch <var>type</var></td>
    449     <td>Choose from these stretch types:
    450 <pre>all
    451 normal
    452 ultra-condensed
    453 extra-condensed
    454 condensed
    455 semi-condensed
    456 semi-expanded
    457 expanded
    458 extra-expanded
    459 ultra-expanded</pre></td>
    460   </tr>
    461   <tr>
    462     <td><a id="font-style"></a>font-style <var>style</var></td>
    463     <td>Choose from these styles:
    464 <pre>all
    465 normal
    466 italic
    467 oblique</pre></td>
    468   </tr>
    469   <tr>
    470     <td><a id="font-weight"></a>font-weight <var>weight</var></td>
    471     <td>Choose from these weights:
    472 <pre>all
    473 normal
    474 bold
    475 100
    476 200
    477 300
    478 400
    479 500
    480 600
    481 700
    482 800
    483 900</pre></td>
    484   </tr>
    485   <tr>
    486     <td><a id="gradient-units"></a>gradient-units <var>units</var></td>
    487     <td>Choose from these units:
    488 <pre>userSpace
    489 userSpaceOnUse
    490 objectBoundingBox</pre></td>
    491   </tr>
    492   <tr>
    493     <td><a id="gravity"></a>gravity <var>type</var></td>
    494     <td>Choose from these gravity types:
    495 <pre>NorthWest
    496 North
    497 NorthEast
    498 West
    499 Center
    500 East
    501 SouthWest
    502 South
    503 SouthEast</pre></td>
    504   </tr>
    505   <tr>
    506     <td><a id="compose"></a>image <var>compose x,y width,height 'filename'</var></td>
    507     <td>Choose from these compose operations:
    508     <table id="table" cellpadding="2" cellspacing="0" style="width: 93%">
    509   <tbody>
    510   <tr>
    511     <th align="left" style="width: 8%">Method</th>
    512     <th align="left">Description</th>
    513   </tr>
    514 
    515   <tr>
    516     <td>clear</td>
    517     <td>Both the color and the alpha of the destination are cleared. Neither the source nor the destination are used as input.</td>
    518   </tr>
    519 
    520   <tr>
    521     <td>src</td>
    522     <td>The source is copied to the destination. The destination is not used as input.</td>
    523   </tr>
    524 
    525   <tr>
    526     <td>dst</td>
    527     <td>The destination is left untouched.</td>
    528   </tr>
    529 
    530   <tr>
    531     <td><b>src-over</b></td>
    532     <td>The source is composited over the destination.</td>
    533   </tr>
    534 
    535   <tr>
    536     <td>dst-over</td>
    537     <td>The destination is composited over the source and the result replaces the destination.</td>
    538   </tr>
    539 
    540   <tr>
    541     <td>src-in</td>
    542     <td>The part of the source lying inside of the destination replaces the destination.</td>
    543   </tr>
    544 
    545   <tr>
    546     <td>dst-in</td>
    547     <td>The part of the destination lying inside of the source replaces the destination.</td>
    548   </tr>
    549 
    550   <tr>
    551     <td>src-out</td>
    552     <td>The part of the source lying outside of the destination replaces the destination.</td>
    553   </tr>
    554 
    555   <tr>
    556     <td>dst-out</td>
    557     <td>The part of the destination lying outside of the source         replaces the destination.</td>
    558   </tr>
    559 
    560   <tr>
    561     <td>src-atop</td>
    562     <td>The part of the source lying inside of the destination is  composited onto the destination.</td>
    563   </tr>
    564 
    565   <tr>
    566     <td>dst-atop</td>
    567     <td>The part of the destination lying inside of the source is composited over the source and replaces the destination.</td>
    568   </tr>
    569 
    570   <tr>
    571     <td>multiply</td>
    572     <td>The source is multiplied by the destination and replaces the destination. The resultant color is always at least as dark as either of the two constituent colors. Multiplying any color with black produces black. Multiplying any color with white leaves the original color unchanged.</td>
    573   </tr>
    574 
    575   <tr>
    576     <td>screen</td>
    577     <td>The source and destination are complemented and then multiplied and then replace the destination. The resultant color is always at least as light as either of the two constituent colors. Screening any color with white produces white. Screening any color with black leaves the original color unchanged.</td>
    578   </tr>
    579 
    580   <tr>
    581     <td>overlay</td>
    582     <td>Multiplies or screens the colors, dependent on the destination color. Source colors overlay the destination whilst preserving its highlights and shadows. The destination color is not replaced, but is mixed with the source color to reflect the lightness or darkness of the destination.</td>
    583   </tr>
    584 
    585   <tr>
    586     <td>darken</td>
    587     <td>Selects the darker of the destination and source colors.  The destination is replaced with the source when the source is darker, otherwise it is left unchanged.</td>
    588   </tr>
    589 
    590   <tr>
    591     <td>lighten</td>
    592     <td>Selects the lighter of the destination and source colors.  The destination is replaced with the source when the source is lighter, otherwise it is left unchanged.</td>
    593   </tr>
    594 
    595   <tr>
    596     <td>linear-light</td>
    597     <td>Increase contrast slightly with an impact on the foreground's tonal values.</td>
    598   </tr>
    599 
    600   <tr>
    601     <td>color-dodge</td>
    602     <td>Brightens the destination color to reflect the source color. Painting with black produces no change.</td>
    603   </tr>
    604 
    605   <tr>
    606     <td>color-burn</td>
    607     <td>Darkens the destination color to reflect the source color.  Painting with white produces no change.</td>
    608   </tr>
    609 
    610   <tr>
    611     <td>hard-light</td>
    612     <td>Multiplies or screens the colors, dependent on the source color value. If the source color is lighter than 0.5, the destination is lightened as if it were screened. If the source color is darker than 0.5, the destination is darkened, as if it were multiplied. The degree of lightening or darkening is proportional to the difference between the source color and 0.5. If it is equal to 0.5 the destination is unchanged. Painting with pure black or white produces black or white.</td>
    613   </tr>
    614 
    615   <tr>
    616     <td>soft-light</td>
    617     <td>Darkens or lightens the colors, dependent on the source color value. If the source color is lighter than 0.5, the destination is lightened. If the source color is darker than 0.5, the destination is darkened, as if it were burned in. The degree of darkening or lightening is proportional to the difference between the source color and 0.5. If it is equal to 0.5, the destination is unchanged. Painting with pure black or white produces a distinctly darker or lighter area, but does not result in pure black or white.</td>
    618   </tr>
    619 
    620   <tr>
    621     <td>plus</td>
    622     <td>The source is added to the destination and replaces the destination. This operator is useful for animating a dissolve between two images.</td>
    623   </tr>
    624 
    625   <tr>
    626     <td>add</td>
    627     <td>As per 'plus' but transparency data is treated as matte
    628         values. As such any transparent areas in either image remain
    629         transparent. </td>
    630   </tr>
    631 
    632   <tr>
    633     <td>minus</td>
    634     <td>Subtract the colors in the source image from the
    635         destination image. When transparency is involved, Opaque areas will be
    636         subtracted from any destination opaque areas. </td>
    637   </tr>
    638 
    639   <tr>
    640     <td>subtract</td>
    641     <td>Subtract the colors in the source image from the
    642         destination image. When transparency is involved transparent areas are
    643         subtracted, so only the opaque areas in the source remain opaque in
    644         the destination image. </td>
    645   </tr>
    646 
    647   <tr>
    648     <td>difference</td>
    649     <td>Subtracts the darker of the two constituent colors from the lighter. Painting with white inverts the destination color. Painting with black produces no change.</td>
    650   </tr>
    651 
    652   <tr>
    653     <td>exclusion</td>
    654     <td>Produces an effect similar to that of 'difference', but appears as lower contrast. Painting with white inverts the destination color. Painting with black produces no change.</td>
    655   </tr>
    656 
    657   <tr>
    658     <td>xor</td>
    659     <td>The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source.</td>
    660   </tr>
    661 
    662   <tr>
    663     <td>copy-*</td>
    664     <td>Copy the specified channel in the source image to the
    665         same channel in the destination image.  If the channel specified in
    666         the source image does not exist, (which can only happen for methods,
    667         '<code>copy-opacity</code>' or '<code>copy-black</code>') then it is
    668         assumed that the source image is a special grayscale channel image
    669         of the values to be copied. </td>
    670     </tr>
    671 
    672   <tr>
    673     <td>change-mask</td>
    674     <td>Replace any destination pixel that is the similar to the source images pixel (as defined by the current <a href="http://www.imagemagick.org/www/magick-vector-graphics.html#fuzz">-fuzz</a> factor), with transparency. </td>
    675   </tr>
    676   </tbody>
    677 </table></td>
    678   </tr>
    679   <tr>
    680     <td><a id="interline-spacing"></a>interline-spacing <var>pixels</var></td>
    681     <td></td>
    682   </tr>
    683   <tr>
    684     <td><a id="interword-spacing"></a>interword-spacing <var>pixels</var></td>
    685     <td></td>
    686   </tr>
    687   <tr>
    688     <td><a id="kerning"></a>kerning <var>pixels</var></td>
    689     <td></td>
    690   </tr>
    691   <tr>
    692     <td><a id="line"></a>line <var>x,y x<sub>1</sub>,y<sub>1</sub></var></td>
    693     <td></td>
    694   </tr>
    695   <tr>
    696     <td><a id="matte"></a>matte <var>x,y method</var></td>
    697     <td>Choose from these methods:
    698 <pre>point
    699 replace
    700 floodfill
    701 filltoborder
    702 reset</pre></td>
    703   </tr>
    704   <tr>
    705     <td><a id="offset"></a>offset <var>offset</var></td>
    706     <td></td>
    707   </tr>
    708   <tr>
    709     <td><a id="opacity"></a>opacity <var>opacity</var></td>
    710     <td>Use percent (e.g. 50%).</td>
    711   </tr>
    712   <tr>
    713     <td><a id="path"></a>path <var>path</var></td>
    714     <td></td>
    715   </tr>
    716   <tr>
    717     <td><a id="point"></a>point <var>x,y</var></td>
    718     <td></td>
    719   </tr>
    720   <tr>
    721     <td><a id="polygon"></a>polygon <var>x,y x<sub>1</sub>,y<sub>1</sub>, ..., x<sub>n</sub>,y<sub>n</sub></var></td>
    722     <td></td>
    723   </tr>
    724   <tr>
    725     <td><a id="polyline"></a>polyline <var>x,y x<sub>1</sub>,y<sub>1</sub>, ..., x<sub>n</sub>,y<sub>n</sub></var></td>
    726     <td></td>
    727   </tr>
    728   <tr>
    729     <td><a id="pop-clip-path"></a>pop clip-path</td>
    730     <td></td>
    731   </tr>
    732   <tr>
    733     <td><a id="pop-defs"></a>pop defs</td>
    734     <td></td>
    735   </tr>
    736   <tr>
    737     <td><a id="pop-gradient"></a>pop gradient</td>
    738     <td></td>
    739   </tr>
    740   <tr>
    741     <td><a id="pop-graphic-context"></a>pop graphic-context</td>
    742     <td></td>
    743   </tr>
    744   <tr>
    745     <td><a id="pop-pattern"></a>pop pattern</td>
    746     <td></td>
    747   </tr>
    748   <tr>
    749     <td><a id="push"></a>push clip-path <var>name</var></td>
    750     <td></td>
    751   </tr>
    752   <tr>
    753     <td><a id="push-defs"></a>push defs</td>
    754     <td></td>
    755   </tr>
    756   <tr>
    757     <td><a id="push-gradient-linear"></a>push gradient <var>id linear x,y x<sub>1</sub>,y<sub>1</sub></var></td>
    758     <td></td>
    759   </tr>
    760   <tr>
    761     <td><a id="push-gradient-radial"></a>push gradient <var>id radial x<sub>c</sub>,c<sub>y</sub> x<sub>f</sub>,y<sub>f</sub> radius</var></td>
    762     <td></td>
    763   </tr>
    764   <tr>
    765     <td><a id="push-graphic-context"></a>push graphic-context</td>
    766     <td></td>
    767   </tr>
    768   <tr>
    769     <td><a id="push-pattern"></a>push pattern <var>id radial x,y width,height</var></td>
    770     <td></td>
    771   </tr>
    772   <tr>
    773     <td><a id="rectangle"></a>rectangle <var>x,y x<sub>1</sub>,y<sub>1</sub></var></td>
    774     <td></td>
    775   </tr>
    776   <tr>
    777     <td><a id="rotate"></a>rotate <var>angle</var></td>
    778     <td></td>
    779   </tr>
    780   <tr>
    781     <td><a id="roundrectangle"></a>roundrectangle <var>x,y x<sub>1</sub>,y<sub>1</sub> width,height</var></td>
    782     <td></td>
    783   </tr>
    784   <tr>
    785     <td><a id="scale"></a>scale <var>x,y</var></td>
    786     <td></td>
    787   </tr>
    788   <tr>
    789     <td><a id="skewX"></a>skewX <var>angle</var></td>
    790     <td></td>
    791   </tr>
    792   <tr>
    793     <td><a id="skewY"></a>skewX <var>angle</var></td>
    794     <td></td>
    795   </tr>
    796   <tr>
    797     <td><a id="stop-color"></a>stop-color <var>color offset</var></td>
    798     <td></td>
    799   </tr>
    800   <tr>
    801     <td><a id="stroke"></a>stroke <var>color</var></td>
    802     <td></td>
    803   </tr>
    804   <tr>
    805     <td><a id="stroke-antialias"></a>stroke-antialias <var>0  1</var></td>
    806     <td></td>
    807   </tr>
    808   <tr>
    809     <td><a id="stroke-dasharray"></a>stroke-dasharray <var>none  numeric-list</var></td>
    810     <td></td>
    811   </tr>
    812   <tr>
    813     <td><a id="stroke-dashoffset"></a>stroke-dashoffset <var>offset</var></td>
    814     <td></td>
    815   </tr>
    816   <tr>
    817     <td><a id="stroke-linecap"></a>stroke-linecap <var>type</var></td>
    818     <td>Choose from these cap types:
    819 <pre>butt
    820 round
    821 square</pre></td>
    822   </tr>
    823   <tr>
    824     <td><a id="stroke-linejoin"></a>stroke-linejoin <var>type</var></td>
    825     <td>Choose from these join types:
    826 <pre>bevel
    827 miter
    828 round</pre></td>
    829   </tr>
    830   <tr>
    831     <td><a id="stroke-miterlimit"></a>stroke-miterlimit <var>limit</var></td>
    832     <td></td>
    833   </tr>
    834   <tr>
    835     <td><a id="stroke-opacity"></a>stroke-opacity <var>opacity</var></td>
    836     <td>The opacity ranges from 0.0 (fully transparent) to 1.0 (fully opaque) or as a percentage (e.g. 50%).</td>
    837   </tr>
    838   <tr>
    839     <td><a id="stroke-width"></a>stroke-width <var>width</var></td>
    840     <td></td>
    841   </tr>
    842   <tr>
    843     <td><a id="text"></a>text <var>"text"</var></td>
    844     <td></td>
    845   </tr>
    846   <tr>
    847     <td><a id="text-antialias"></a>text-antialias <var>0  1</var></td>
    848     <td></td>
    849   </tr>
    850   <tr>
    851     <td><a id="text-undercolor"></a>text-undercolor <var>color</var></td>
    852     <td></td>
    853   </tr>
    854   <tr>
    855     <td><a id="translate"></a>translate <var>x,y</var></td>
    856     <td></td>
    857   </tr>
    858   <tr>
    859     <td><a id="viewbox"></a>viewbox <var>x,y x<sub>1</sub>,y<sub>1</sub></var></td>
    860     <td></td>
    861   </tr>
    862 </table></div>
    863   <footer class="magick-footer">
    864     <p><a href="support.html">Donate</a> 
    865      <a href="sitemap.html">Sitemap</a> 
    866     <a href="links.html">Related</a> 
    867     <a href="architecture.html">Architecture</a>
    868 </p>
    869     <p><a href="magick-vector-graphics.html#">Back to top</a> 
    870     <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> 
    871     <a href="http://www.imagemagick.org/script/contact.php">Contact Us</a></p>
    872         <p><small>  1999-2016 ImageMagick Studio LLC</small></p>
    873   </footer>
    874 </div><!-- /.container -->
    875 
    876   <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    877   <script src="../js/magick.html"></script>
    878 </div>
    879 </body>
    880 </html>
    881