• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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> &#8226; <a href="image-view.html#DestroyImageView">DestroyImageView</a> &#8226; <a href="image-view.html#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> &#8226; <a href="image-view.html#GetImageViewAuthenticMetacontent">GetImageViewAuthenticMetacontent</a> &#8226; <a href="image-view.html#GetImageViewAuthenticPixels">GetImageViewAuthenticPixels</a> &#8226; <a href="image-view.html#GetImageViewException">GetImageViewException</a> &#8226; <a href="image-view.html#GetImageViewExtent">GetImageViewExtent</a> &#8226; <a href="image-view.html#GetImageViewImage">GetImageViewImage</a> &#8226; <a href="image-view.html#GetImageViewIterator">GetImageViewIterator</a> &#8226; <a href="image-view.html#GetImageViewVirtualMetacontent">GetImageViewVirtualMetacontent</a> &#8226; <a href="image-view.html#GetImageViewVirtualPixels">GetImageViewVirtualPixels</a> &#8226; <a href="image-view.html#IsImageView">IsImageView</a> &#8226; <a href="image-view.html#NewImageView">NewImageView</a> &#8226; <a href="image-view.html#NewImageViewRegion">NewImageViewRegion</a> &#8226; <a href="image-view.html#SetImageViewDescription">SetImageViewDescription</a> &#8226; <a href="image-view.html#SetImageViewIterator">SetImageViewIterator</a> &#8226; <a href="image-view.html#TransferImageViewIterator">TransferImageViewIterator</a> &#8226; <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&amp;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