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