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" /> 10 <title>ImageMagick - MagickCore, C API: Image View Methods</title> 11 <meta name="application-name" content="ImageMagick" /> 12 <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert digital images. Resize an image, crop it, change its shades and colors, add captions, and more." /> 13 <meta name="application-url" content="https://imagemagick.org" /> 14 <meta name="generator" content="PHP" /> 15 <meta name="keywords" content="magickcore, c, api:, image, view, methods, image processing software" /> 16 <meta name="rating" content="GENERAL" /> 17 <meta name="robots" content="INDEX, FOLLOW" /> 18 <meta name="generator" content="ImageMagick Studio LLC" /> 19 <meta name="author" content="ImageMagick Studio LLC" /> 20 <meta name="revisit-after" content="2 DAYS" /> 21 <meta name="resource-type" content="document" /> 22 <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" /> 23 <meta name="distribution" content="Global" /> 24 <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" /> 25 <meta property='og:url' content='../../' /> 26 <meta property='og:title' content='ImageMagick' /> 27 <meta property='og:image' content='../../../images/logo.png' /> 28 <meta property='og:type' content='website' /> 29 <meta property='og:site_name' content='ImageMagick' /> 30 <meta property='og:description' content="Create, Edit, Compose, or Convert Digital Images" /> 31 <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" /> 32 <link href="image-view.html" rel="canonical" /> 33 <link href="../../../images/wand.png" rel="icon" /> 34 <link href="../../../images/wand.ico" rel="shortcut icon" /> 35 <link href="../../assets/magick.css" rel="stylesheet" /> 36</head> 37<body> 38 <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top"> 39 <div class="container-fluid"> 40 <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../../images/wand.ico"/></a> 41 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#magick-navbars" aria-controls="magick-navbars" aria-expanded="false" aria-label="Toggle navigation"> 42 <span class="navbar-toggler-icon"></span> 43 </button> 44 45 <div class="collapse navbar-collapse" id="magick-navbars"> 46 <ul class="navbar-nav me-auto mb-2 mb-md-0"> 47 <li class="nav-item"> 48 <a class="nav-link " href="../../www/index.html">Home</a> 49 </li> 50 <li class="nav-item"> 51 <a class="nav-link " href="../../www/download.html">Download</a> 52 </li> 53 <li class="nav-item"> 54 <a class="nav-link " href="../../www/command-line-tools.html">Tools</a> 55 </li> 56 <li class="nav-item"> 57 <a class="nav-link " href="../../www/command-line-processing.html">CLI</a> 58 </li> 59 <li class="nav-item"> 60 <a class="nav-link " href="../../www/develop.html">Develop</a> 61 </li> 62 <li class="nav-item"> 63 <a class="nav-link" target="_blank" href="https://github.com/ImageMagick/ImageMagick/discussions">Community</a> 64 </li> 65 <li class="nav-item"> 66 <iframe src="https://github.com/sponsors/ImageMagick/button" title="Sponsor ImageMagick" height="35" width="107" style="border: 0;"></iframe> 67 </li> 68 </ul> 69 <form class="d-flex form-inline" action="https://imagemagick.org/script/search.php"> 70 <input class="form-control me-2" type="text" name="q" placeholder="Search" aria-label="Search"> 71 <button class="btn btn-outline-success" type="submit" name="sa">Search</button> 72 </form> 73 </div> 74 </div> 75 </nav> 76 77 <div class="container"> 78 <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script> 79 <ins class="adsbygoogle" 80 style="display:block" 81 data-ad-client="ca-pub-3129977114552745" 82 data-ad-slot="6345125851" 83 data-full-width-responsive="true" 84 data-ad-format="horizontal"></ins> 85 <script> 86 (adsbygoogle = window.adsbygoogle || []).push({}); 87 </script> 88 89 </div> 90 91 <main class="container"> 92 <div class="magick-template"> 93<div class="magick-header"> 94<p class="text-center"><a href="image-view.html#CloneImageView">CloneImageView</a> • <a href="image-view.html#DestroyImageView">DestroyImageView</a> • <a href="image-view.html#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> • <a href="image-view.html#GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</a> • <a href="image-view.html#GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a> • <a href="image-view.html#GetImageViewException">GetImageViewException</a> • <a href="image-view.html#GetImageViewExtent">GetImageViewExtent</a> • <a href="image-view.html#GetImageViewImage">GetImageViewImage</a> • <a href="image-view.html#GetImageViewIterator">GetImageViewIterator</a> • <a href="image-view.html#GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</a> • <a href="image-view.html#GetImageViewVirtualPixels">GetImageViewVirtualPixels</a> • <a href="image-view.html#IsImageView">IsImageView</a> • <a href="image-view.html#NewImageView">NewImageView</a> • <a href="image-view.html#NewImageViewRegion">NewImageViewRegion</a> • <a href="image-view.html#SetImageViewDescription">SetImageViewDescription</a> • <a href="image-view.html#SetImageViewIterator">SetImageViewIterator</a> • <a href="image-view.html#TransferImageViewIterator">TransferImageViewIterator</a> • <a href="image-view.html#UpdateImageViewIterator">UpdateImageViewIterator</a></p> 95 96<h2><a href="../../api/MagickCore/image-view_8c.html" id="CloneImageView">CloneImageView</a></h2> 97 98<p>CloneImageView() makes a copy of the specified image view.</p> 99 100<p>The format of the CloneImageView method is:</p> 101 102<pre class="text"> 103ImageView *CloneImageView(const ImageView *image_view) 104</pre> 105 106<p>A description of each parameter follows:</p> 107 108<dd> 109</dd> 110 111<dd> </dd> 112<dl class="dl-horizontal"> 113<dt>image_view</dt> 114<dd>the image view. </dd> 115 116<dd> </dd> 117</dl> 118<h2><a href="../../api/MagickCore/image-view_8c.html" id="DestroyImageView">DestroyImageView</a></h2> 119 120<p>DestroyImageView() deallocates memory associated with a image view.</p> 121 122<p>The format of the DestroyImageView method is:</p> 123 124<pre class="text"> 125ImageView *DestroyImageView(ImageView *image_view) 126</pre> 127 128<p>A description of each parameter follows:</p> 129 130<dd> 131</dd> 132 133<dd> </dd> 134<dl class="dl-horizontal"> 135<dt>image_view</dt> 136<dd>the image view. </dd> 137 138<dd> </dd> 139</dl> 140<h2><a href="../../api/MagickCore/image-view_8c.html" id="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2> 141 142<p>DuplexTransferImageViewIterator() iterates over three image views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p> 143 144<p>The callback signature is:</p> 145 146<pre class="text"> 147MagickBooleanType DuplexTransferImageViewMethod(const ImageView *source, 148 const ImageView *duplex,ImageView *destination,const ssize_t y, 149 const int thread_id,void *context) 150</pre> 151 152<p>Use this pragma if the view is not single threaded:</p> 153 154<pre class="text"> 155 #pragma omp critical 156</pre> 157 158<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p> 159 160<p>The format of the DuplexTransferImageViewIterator method is:</p> 161 162<pre class="text"> 163MagickBooleanType DuplexTransferImageViewIterator(ImageView *source, 164 ImageView *duplex,ImageView *destination, 165 DuplexTransferImageViewMethod transfer,void *context) 166</pre> 167 168<p>A description of each parameter follows:</p> 169 170<dd> 171</dd> 172 173<dd> </dd> 174<dl class="dl-horizontal"> 175<dt>source</dt> 176<dd>the source image view. </dd> 177 178<dd> </dd> 179<dt>duplex</dt> 180<dd>the duplex image view. </dd> 181 182<dd> </dd> 183<dt>destination</dt> 184<dd>the destination image view. </dd> 185 186<dd> </dd> 187<dt>transfer</dt> 188<dd>the transfer callback method. </dd> 189 190<dd> </dd> 191<dt>context</dt> 192<dd>the user defined context. </dd> 193 194<dd> </dd> 195</dl> 196<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</a></h2> 197 198<p>GetImageViewAuthenticMetacontent() returns the image view authentic meta-content.</p> 199 200<p>The format of the GetImageViewAuthenticPixels method is:</p> 201 202<pre class="text"> 203void *GetImageViewAuthenticMetacontent( 204 const ImageView *image_view) 205</pre> 206 207<p>A description of each parameter follows:</p> 208 209<dd> 210</dd> 211 212<dd> </dd> 213<dl class="dl-horizontal"> 214<dt>image_view</dt> 215<dd>the image view. </dd> 216 217<dd> </dd> 218</dl> 219<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a></h2> 220 221<p>GetImageViewAuthenticPixels() returns the image view authentic pixels.</p> 222 223<p>The format of the GetImageViewAuthenticPixels method is:</p> 224 225<pre class="text"> 226Quantum *GetImageViewAuthenticPixels(const ImageView *image_view) 227</pre> 228 229<p>A description of each parameter follows:</p> 230 231<dd> 232</dd> 233 234<dd> </dd> 235<dl class="dl-horizontal"> 236<dt>image_view</dt> 237<dd>the image view. </dd> 238 239<dd> </dd> 240</dl> 241<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewException">GetImageViewException</a></h2> 242 243<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a image view.</p> 244 245<p>The format of the GetImageViewException method is:</p> 246 247<pre class="text"> 248char *GetImageViewException(const PixelImage *image_view, 249 ExceptionType *severity) 250</pre> 251 252<p>A description of each parameter follows:</p> 253 254<dd> 255</dd> 256 257<dd> </dd> 258<dl class="dl-horizontal"> 259<dt>image_view</dt> 260<dd>the pixel image_view. </dd> 261 262<dd> </dd> 263<dt>severity</dt> 264<dd>the severity of the error is returned here. </dd> 265 266<dd> </dd> 267</dl> 268<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewExtent">GetImageViewExtent</a></h2> 269 270<p>GetImageViewExtent() returns the image view extent.</p> 271 272<p>The format of the GetImageViewExtent method is:</p> 273 274<pre class="text"> 275RectangleInfo GetImageViewExtent(const ImageView *image_view) 276</pre> 277 278<p>A description of each parameter follows:</p> 279 280<dd> 281</dd> 282 283<dd> </dd> 284<dl class="dl-horizontal"> 285<dt>image_view</dt> 286<dd>the image view. </dd> 287 288<dd> </dd> 289</dl> 290<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewImage">GetImageViewImage</a></h2> 291 292<p>GetImageViewImage() returns the image associated with the image view.</p> 293 294<p>The format of the GetImageViewImage method is:</p> 295 296<pre class="text"> 297MagickCore *GetImageViewImage(const ImageView *image_view) 298</pre> 299 300<p>A description of each parameter follows:</p> 301 302<dd> 303</dd> 304 305<dd> </dd> 306<dl class="dl-horizontal"> 307<dt>image_view</dt> 308<dd>the image view. </dd> 309 310<dd> </dd> 311</dl> 312<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewIterator">GetImageViewIterator</a></h2> 313 314<p>GetImageViewIterator() iterates over the image view in parallel and calls your get method for each scanline of the view. The pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.</p> 315 316<p>The callback signature is:</p> 317 318<pre class="text"> 319MagickBooleanType GetImageViewMethod(const ImageView *source, 320 const ssize_t y,const int thread_id,void *context) 321</pre> 322 323<p>Use this pragma if the view is not single threaded:</p> 324 325<pre class="text"> 326 #pragma omp critical 327</pre> 328 329<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p> 330 331<p>The format of the GetImageViewIterator method is:</p> 332 333<pre class="text"> 334MagickBooleanType GetImageViewIterator(ImageView *source, 335 GetImageViewMethod get,void *context) 336</pre> 337 338<p>A description of each parameter follows:</p> 339 340<dd> 341</dd> 342 343<dd> </dd> 344<dl class="dl-horizontal"> 345<dt>source</dt> 346<dd>the source image view. </dd> 347 348<dd> </dd> 349<dt>get</dt> 350<dd>the get callback method. </dd> 351 352<dd> </dd> 353<dt>context</dt> 354<dd>the user defined context. </dd> 355 356<dd> </dd> 357</dl> 358<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</a></h2> 359 360<p>GetImageViewVirtualMetacontent() returns the image view virtual meta-content.</p> 361 362<p>The format of the GetImageViewVirtualMetacontent method is:</p> 363 364<pre class="text"> 365const void *GetImageViewVirtualMetacontent( 366 const ImageView *image_view) 367</pre> 368 369<p>A description of each parameter follows:</p> 370 371<dd> 372</dd> 373 374<dd> </dd> 375<dl class="dl-horizontal"> 376<dt>image_view</dt> 377<dd>the image view. </dd> 378 379<dd> </dd> 380</dl> 381<h2><a href="../../api/MagickCore/image-view_8c.html" id="GetImageViewVirtualPixels">GetImageViewVirtualPixels</a></h2> 382 383<p>GetImageViewVirtualPixels() returns the image view virtual pixels.</p> 384 385<p>The format of the GetImageViewVirtualPixels method is:</p> 386 387<pre class="text"> 388const Quantum *GetImageViewVirtualPixels(const ImageView *image_view) 389</pre> 390 391<p>A description of each parameter follows:</p> 392 393<dd> 394</dd> 395 396<dd> </dd> 397<dl class="dl-horizontal"> 398<dt>image_view</dt> 399<dd>the image view. </dd> 400 401<dd> </dd> 402</dl> 403<h2><a href="../../api/MagickCore/image-view_8c.html" id="IsImageView">IsImageView</a></h2> 404 405<p>IsImageView() returns MagickTrue if the parameter is verified as a image view object.</p> 406 407<p>The format of the IsImageView method is:</p> 408 409<pre class="text"> 410MagickBooleanType IsImageView(const ImageView *image_view) 411</pre> 412 413<p>A description of each parameter follows:</p> 414 415<dd> 416</dd> 417 418<dd> </dd> 419<dl class="dl-horizontal"> 420<dt>image_view</dt> 421<dd>the image view. </dd> 422 423<dd> </dd> 424</dl> 425<h2><a href="../../api/MagickCore/image-view_8c.html" id="NewImageView">NewImageView</a></h2> 426 427<p>NewImageView() returns a image view required for all other methods in the Image View API.</p> 428 429<p>The format of the NewImageView method is:</p> 430 431<pre class="text"> 432ImageView *NewImageView(MagickCore *wand,ExceptionInfo *exception) 433</pre> 434 435<p>A description of each parameter follows:</p> 436 437<dd> 438</dd> 439 440<dd> </dd> 441<dl class="dl-horizontal"> 442<dt>image</dt> 443<dd>the image. </dd> 444 445<dd> </dd> 446<dt>exception</dt> 447<dd>return any errors or warnings in this structure. </dd> 448 449<dd> </dd> 450</dl> 451<h2><a href="../../api/MagickCore/image-view_8c.html" id="NewImageViewRegion">NewImageViewRegion</a></h2> 452 453<p>NewImageViewRegion() returns a image view required for all other methods in the Image View API.</p> 454 455<p>The format of the NewImageViewRegion method is:</p> 456 457<pre class="text"> 458ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x, 459 const ssize_t y,const size_t width,const size_t height, 460 ExceptionInfo *exception) 461</pre> 462 463<p>A description of each parameter follows:</p> 464 465<dd> 466</dd> 467 468<dd> </dd> 469<dl class="dl-horizontal"> 470<dt>wand</dt> 471<dd>the magick wand. </dd> 472 473<dd> </dd> 474<dt>x,y,columns,rows</dt> 475<dd> These values define the perimeter of a extent of pixel_wands view. </dd> 476 477<dd> </dd> 478<dt>exception</dt> 479<dd>return any errors or warnings in this structure. </dd> 480 481<dd> </dd> 482</dl> 483<h2><a href="../../api/MagickCore/image-view_8c.html" id="SetImageViewDescription">SetImageViewDescription</a></h2> 484 485<p>SetImageViewDescription() associates a description with an image view.</p> 486 487<p>The format of the SetImageViewDescription method is:</p> 488 489<pre class="text"> 490void SetImageViewDescription(ImageView *image_view, 491 const char *description) 492</pre> 493 494<p>A description of each parameter follows:</p> 495 496<dd> 497</dd> 498 499<dd> </dd> 500<dl class="dl-horizontal"> 501<dt>image_view</dt> 502<dd>the image view. </dd> 503 504<dd> </dd> 505<dt>description</dt> 506<dd>the image view description. </dd> 507 508<dd> </dd> 509</dl> 510<h2><a href="../../api/MagickCore/image-view_8c.html" id="SetImageViewIterator">SetImageViewIterator</a></h2> 511 512<p>SetImageViewIterator() iterates over the image view in parallel and calls your set method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.</p> 513 514<p>The callback signature is:</p> 515 516<pre class="text"> 517MagickBooleanType SetImageViewMethod(ImageView *destination, 518 const ssize_t y,const int thread_id,void *context) 519</pre> 520 521<p>Use this pragma if the view is not single threaded:</p> 522 523<pre class="text"> 524 #pragma omp critical 525</pre> 526 527<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p> 528 529<p>The format of the SetImageViewIterator method is:</p> 530 531<pre class="text"> 532MagickBooleanType SetImageViewIterator(ImageView *destination, 533 SetImageViewMethod set,void *context) 534</pre> 535 536<p>A description of each parameter follows:</p> 537 538<dd> 539</dd> 540 541<dd> </dd> 542<dl class="dl-horizontal"> 543<dt>destination</dt> 544<dd>the image view. </dd> 545 546<dd> </dd> 547<dt>set</dt> 548<dd>the set callback method. </dd> 549 550<dd> </dd> 551<dt>context</dt> 552<dd>the user defined context. </dd> 553 554<dd> </dd> 555</dl> 556<h2><a href="../../api/MagickCore/image-view_8c.html" id="TransferImageViewIterator">TransferImageViewIterator</a></h2> 557 558<p>TransferImageViewIterator() iterates over two image views in parallel and calls your transfer method for each scanline of the view. The source pixel extent is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination image view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p> 559 560<p>The callback signature is:</p> 561 562<pre class="text"> 563MagickBooleanType TransferImageViewMethod(const ImageView *source, 564 ImageView *destination,const ssize_t y,const int thread_id, 565 void *context) 566</pre> 567 568<p>Use this pragma if the view is not single threaded:</p> 569 570<pre class="text"> 571 #pragma omp critical 572</pre> 573 574<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p> 575 576<p>The format of the TransferImageViewIterator method is:</p> 577 578<pre class="text"> 579MagickBooleanType TransferImageViewIterator(ImageView *source, 580 ImageView *destination,TransferImageViewMethod transfer,void *context) 581</pre> 582 583<p>A description of each parameter follows:</p> 584 585<dd> 586</dd> 587 588<dd> </dd> 589<dl class="dl-horizontal"> 590<dt>source</dt> 591<dd>the source image view. </dd> 592 593<dd> </dd> 594<dt>destination</dt> 595<dd>the destination image view. </dd> 596 597<dd> </dd> 598<dt>transfer</dt> 599<dd>the transfer callback method. </dd> 600 601<dd> </dd> 602<dt>context</dt> 603<dd>the user defined context. </dd> 604 605<dd> </dd> 606</dl> 607<h2><a href="../../api/MagickCore/image-view_8c.html" id="UpdateImageViewIterator">UpdateImageViewIterator</a></h2> 608 609<p>UpdateImageViewIterator() iterates over the image view in parallel and calls your update method for each scanline of the view. The pixel extent is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.</p> 610 611<p>The callback signature is:</p> 612 613<pre class="text"> 614MagickBooleanType UpdateImageViewMethod(ImageView *source, 615 const ssize_t y,const int thread_id,void *context) 616</pre> 617 618<p>Use this pragma if the view is not single threaded:</p> 619 620<pre class="text"> 621 #pragma omp critical 622</pre> 623 624<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p> 625 626<p>The format of the UpdateImageViewIterator method is:</p> 627 628<pre class="text"> 629MagickBooleanType UpdateImageViewIterator(ImageView *source, 630 UpdateImageViewMethod update,void *context) 631</pre> 632 633<p>A description of each parameter follows:</p> 634 635<dd> 636</dd> 637 638<dd> </dd> 639<dl class="dl-horizontal"> 640<dt>source</dt> 641<dd>the source image view. </dd> 642 643<dd> </dd> 644<dt>update</dt> 645<dd>the update callback method. </dd> 646 647<dd> </dd> 648<dt>context</dt> 649<dd>the user defined context. </dd> 650 651<dd> </dd> 652</dl> 653</div> 654 </div> 655 </main><!-- /.container --> 656 <footer class="magick-footer"> 657 <div class="container-fluid"> 658 <a href="../../www/security-policy.html">Security</a> • 659 <a href="../../www/news.html">News</a> 660 661 <a href="image-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../../images/wand.ico"/></a> 662 663 <a href="../../www/links.html">Related</a> • 664 <a href="../../www/sitemap.html">Sitemap</a> 665 <br/> 666 <a href="../../www/support.html">Sponsor</a> • 667 <a href="../../www/cite.html">Cite</a> • 668 <a href="http://pgp.mit.edu/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> • 669 <a href="../../www/contact.html">Contact Us</a> 670 <br/> 671 <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> • 672 <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a> 673 <br/> 674 <small>© 1999-2021 ImageMagick Studio LLC</small> 675 </div> 676 </footer> 677 678 <!-- Javascript assets --> 679 <script src="../../assets/magick.js" ></script> 680 </body> 681</html> 682