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