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 Bézier 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
62command 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>
65convert -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
227pop graphic-context
228</pre>
229
230<p>to render a pie chart with this command:</p>
231
232<pre>
233convert 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>
245convert 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>
287push graphic-context
288  viewbox 0 0 width height
289  [ any other MVG commands ]
290pop graphic-context
291</pre>
292
293<p>Pattern syntax (saving and restoring context):</p>
294
295<pre>
296push pattern id x,y width,height
297 push graphic-context
298  [ drawing commands ]
299 pop graphic-context
300pop pattern
301</pre>
302
303<p>an example is (%s is a identifier string):</p>
304
305<pre>
306push 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
317pop defs
318</pre>
319
320<p>For image tiling use:</p>
321
322<pre>
323push pattern id x,y width,height
324 image Copy ...
325pop pattern
326</pre>
327
328<p>Note you can use the pattern for either the fill or stroke like:</p>
329
330<pre>
331stroke url(#%s)
332</pre>
333
334<p>or</p>
335
336<pre>
337fill 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>
343push defs
344 push clip-path %s
345  push graphic-context
346   rectangle 10,10 20,20
347  pop graphic-context
348 pop clip-path
349pop defs
350clip-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
391nonzero</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
397userSpaceOnUse
398objectBoundingBox</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
404replace
405floodfill
406filltoborder
407reset</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
413line-through
414overline
415underline</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
433nonzero</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
451normal
452ultra-condensed
453extra-condensed
454condensed
455semi-condensed
456semi-expanded
457expanded
458extra-expanded
459ultra-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
465normal
466italic
467oblique</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
473normal
474bold
475100
476200
477300
478400
479500
480600
481700
482800
483900</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
489userSpaceOnUse
490objectBoundingBox</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
496North
497NorthEast
498West
499Center
500East
501SouthWest
502South
503SouthEast</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
699replace
700floodfill
701filltoborder
702reset</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
820round
821square</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
827miter
828round</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