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: Get or Set Image Pixels</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:, get, or, set, image, pixels, 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="cache.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="cache.html#AcquirePixelCacheNexus">AcquirePixelCacheNexus</a> &#8226; <a href="cache.html#AcquirePixelCachePixels">AcquirePixelCachePixels</a> &#8226; <a href="cache.html#GetAuthenticMetacontent">GetAuthenticMetacontent</a> &#8226; <a href="cache.html#GetAuthenticPixelQueue">GetAuthenticPixelQueue</a> &#8226; <a href="cache.html#GetAuthenticPixels">GetAuthenticPixels</a> &#8226; <a href="cache.html#GetOneAuthenticPixel">GetOneAuthenticPixel</a> &#8226; <a href="cache.html#GetOneVirtualPixel">GetOneVirtualPixel</a> &#8226; <a href="cache.html#GetOneVirtualPixelInfo">GetOneVirtualPixelInfo</a> &#8226; <a href="cache.html#GetVirtualMetacontent">GetVirtualMetacontent</a> &#8226; <a href="cache.html#GetVirtualPixelQueue">GetVirtualPixelQueue</a> &#8226; <a href="cache.html#GetVirtualPixels">GetVirtualPixels</a> &#8226; <a href="cache.html#QueueAuthenticPixels">QueueAuthenticPixels</a> &#8226; <a href="cache.html#SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a> &#8226; <a href="cache.html#SyncAuthenticPixels">SyncAuthenticPixels</a></p>
95
96<h2><a href="../../api/MagickCore/cache_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
97
98<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
99
100<p>The format of the AcquirePixelCacheNexus method is:</p>
101
102<pre class="text">
103NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
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>number_threads</dt>
114<dd>the number of nexus threads. </dd>
115
116<dd>  </dd>
117</dl>
118<h2><a href="../../api/MagickCore/cache_8c.html" id="AcquirePixelCachePixels">AcquirePixelCachePixels</a></h2>
119
120<p>AcquirePixelCachePixels() returns the pixels associated with the specified image.</p>
121
122<p>The format of the AcquirePixelCachePixels() method is:</p>
123
124<pre class="text">
125void *AcquirePixelCachePixels(const Image *image,size_t *length,
126  ExceptionInfo *exception)
127</pre>
128
129<p>A description of each parameter follows:</p>
130
131<dd>
132</dd>
133
134<dd> </dd>
135<dl class="dl-horizontal">
136<dt>image</dt>
137<dd>the image. </dd>
138
139<dd> </dd>
140<dt>length</dt>
141<dd>the pixel cache length. </dd>
142
143<dd> </dd>
144<dt>exception</dt>
145<dd>return any errors or warnings in this structure. </dd>
146
147<dd>  </dd>
148</dl>
149<h2><a href="../../api/MagickCore/cache_8c.html" id="GetAuthenticMetacontent">GetAuthenticMetacontent</a></h2>
150
151<p>GetAuthenticMetacontent() returns the authentic metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().  NULL is returned if the associated pixels are not available.</p>
152
153<p>The format of the GetAuthenticMetacontent() method is:</p>
154
155<pre class="text">
156void *GetAuthenticMetacontent(const Image *image)
157</pre>
158
159<p>A description of each parameter follows:</p>
160
161<dd>
162</dd>
163
164<dd> </dd>
165<dl class="dl-horizontal">
166<dt>image</dt>
167<dd>the image. </dd>
168
169<dd>  </dd>
170</dl>
171<h2><a href="../../api/MagickCore/cache_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
172
173<p>GetAuthenticPixelQueue() returns the authentic pixels associated corresponding with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
174
175<p>The format of the GetAuthenticPixelQueue() method is:</p>
176
177<pre class="text">
178Quantum *GetAuthenticPixelQueue(const Image image)
179</pre>
180
181<p>A description of each parameter follows:</p>
182
183<dd>
184</dd>
185
186<dd> </dd>
187<dl class="dl-horizontal">
188<dt>image</dt>
189<dd>the image. </dd>
190
191<dd>  </dd>
192</dl>
193<h2><a href="../../api/MagickCore/cache_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
194
195<p>GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a Quantum array representing the region is returned, otherwise NULL is returned.</p>
196
197<p>The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p>
198
199<p>Pixels accessed via the returned pointer represent a simple array of type Quantum.  If the image has corresponding metacontent,call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content corresponding to the region.  Once the Quantum array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p>
200
201<p>The format of the GetAuthenticPixels() method is:</p>
202
203<pre class="text">
204Quantum *GetAuthenticPixels(Image *image,const ssize_t x,
205  const ssize_t y,const size_t columns,const size_t rows,
206  ExceptionInfo *exception)
207</pre>
208
209<p>A description of each parameter follows:</p>
210
211<dd>
212</dd>
213
214<dd> </dd>
215<dl class="dl-horizontal">
216<dt>image</dt>
217<dd>the image. </dd>
218
219<dd> </dd>
220<dt>x,y,columns,rows</dt>
221<dd> These values define the perimeter of a region of pixels. </dd>
222
223<dd> </dd>
224<dt>exception</dt>
225<dd>return any errors or warnings in this structure. </dd>
226
227<dd>  </dd>
228</dl>
229<h2><a href="../../api/MagickCore/cache_8c.html" id="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
230
231<p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location.  The image background color is returned if an error occurs.</p>
232
233<p>The format of the GetOneAuthenticPixel() method is:</p>
234
235<pre class="text">
236MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
237  const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
238</pre>
239
240<p>A description of each parameter follows:</p>
241
242<dd>
243</dd>
244
245<dd> </dd>
246<dl class="dl-horizontal">
247<dt>image</dt>
248<dd>the image. </dd>
249
250<dd> </dd>
251<dt>x,y</dt>
252<dd> These values define the location of the pixel to return. </dd>
253
254<dd> </dd>
255<dt>pixel</dt>
256<dd>return a pixel at the specified (x,y) location. </dd>
257
258<dd> </dd>
259<dt>exception</dt>
260<dd>return any errors or warnings in this structure. </dd>
261
262<dd>  </dd>
263</dl>
264<h2><a href="../../api/MagickCore/cache_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
265
266<p>GetOneVirtualPixel() returns a single virtual pixel at the specified (x,y) location.  The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p>
267
268<p>The format of the GetOneVirtualPixel() method is:</p>
269
270<pre class="text">
271MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
272  const ssize_t y,Quantum *pixel,ExceptionInfo exception)
273</pre>
274
275<p>A description of each parameter follows:</p>
276
277<dd>
278</dd>
279
280<dd> </dd>
281<dl class="dl-horizontal">
282<dt>image</dt>
283<dd>the image. </dd>
284
285<dd> </dd>
286<dt>x,y</dt>
287<dd> These values define the location of the pixel to return. </dd>
288
289<dd> </dd>
290<dt>pixel</dt>
291<dd>return a pixel at the specified (x,y) location. </dd>
292
293<dd> </dd>
294<dt>exception</dt>
295<dd>return any errors or warnings in this structure. </dd>
296
297<dd>  </dd>
298</dl>
299<h2><a href="../../api/MagickCore/cache_8c.html" id="GetOneVirtualPixelInfo">GetOneVirtualPixelInfo</a></h2>
300
301<p>GetOneVirtualPixelInfo() returns a single pixel at the specified (x,y) location.  The image background color is returned if an error occurs.  If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p>
302
303<p>The format of the GetOneVirtualPixelInfo() method is:</p>
304
305<pre class="text">
306MagickBooleanType GetOneVirtualPixelInfo(const Image image,
307  const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
308  const ssize_t y,PixelInfo *pixel,ExceptionInfo exception)
309</pre>
310
311<p>A description of each parameter follows:</p>
312
313<dd>
314</dd>
315
316<dd> </dd>
317<dl class="dl-horizontal">
318<dt>image</dt>
319<dd>the image. </dd>
320
321<dd> </dd>
322<dt>virtual_pixel_method</dt>
323<dd>the virtual pixel method. </dd>
324
325<dd> </dd>
326<dt>x,y</dt>
327<dd> these values define the location of the pixel to return. </dd>
328
329<dd> </dd>
330<dt>pixel</dt>
331<dd>return a pixel at the specified (x,y) location. </dd>
332
333<dd> </dd>
334<dt>exception</dt>
335<dd>return any errors or warnings in this structure. </dd>
336
337<dd>  </dd>
338</dl>
339<h2><a href="../../api/MagickCore/cache_8c.html" id="GetVirtualMetacontent">GetVirtualMetacontent</a></h2>
340
341<p>GetVirtualMetacontent() returns the virtual metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().  NULL is returned if the meta-content are not available.</p>
342
343<p>The format of the GetVirtualMetacontent() method is:</p>
344
345<pre class="text">
346const void *GetVirtualMetacontent(const Image *image)
347</pre>
348
349<p>A description of each parameter follows:</p>
350
351<dd>
352</dd>
353
354<dd> </dd>
355<dl class="dl-horizontal">
356<dt>image</dt>
357<dd>the image. </dd>
358
359<dd>  </dd>
360</dl>
361<h2><a href="../../api/MagickCore/cache_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
362
363<p>GetVirtualPixelQueue() returns the virtual pixels associated corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
364
365<p>The format of the GetVirtualPixelQueue() method is:</p>
366
367<pre class="text">
368const Quantum *GetVirtualPixelQueue(const Image image)
369</pre>
370
371<p>A description of each parameter follows:</p>
372
373<dd>
374</dd>
375
376<dd> </dd>
377<dl class="dl-horizontal">
378<dt>image</dt>
379<dd>the image. </dd>
380
381<dd>  </dd>
382</dl>
383<h2><a href="../../api/MagickCore/cache_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
384
385<p>GetVirtualPixels() returns an immutable pixel region. If the region is successfully accessed, a pointer to it is returned, otherwise NULL is returned.  The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file.  The returned pointer must *never* be deallocated by the user.</p>
386
387<p>Pixels accessed via the returned pointer represent a simple array of type Quantum.  If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to access the meta-content (of type void) corresponding to the region.</p>
388
389<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
390
391<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe.  In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
392
393<p>The format of the GetVirtualPixels() method is:</p>
394
395<pre class="text">
396const Quantum *GetVirtualPixels(const Image *image,const ssize_t x,
397  const ssize_t y,const size_t columns,const size_t rows,
398  ExceptionInfo *exception)
399</pre>
400
401<p>A description of each parameter follows:</p>
402
403<dd>
404</dd>
405
406<dd> </dd>
407<dl class="dl-horizontal">
408<dt>image</dt>
409<dd>the image. </dd>
410
411<dd> </dd>
412<dt>x,y,columns,rows</dt>
413<dd> These values define the perimeter of a region of pixels. </dd>
414
415<dd> </dd>
416<dt>exception</dt>
417<dd>return any errors or warnings in this structure. </dd>
418
419<dd>  </dd>
420</dl>
421<h2><a href="../../api/MagickCore/cache_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
422
423<p>QueueAuthenticPixels() queues a mutable pixel region.  If the region is successfully initialized a pointer to a Quantum array representing the region is returned, otherwise NULL is returned.  The returned pointer may point to a temporary working buffer for the pixels or it may point to the final location of the pixels in memory.</p>
424
425<p>Write-only access means that any existing pixel values corresponding to the region are ignored.  This is useful if the initial image is being created from scratch, or if the existing pixel values are to be completely replaced without need to refer to their pre-existing values. The application is free to read and write the pixel buffer returned by QueueAuthenticPixels() any way it pleases. QueueAuthenticPixels() does not initialize the pixel array values. Initializing pixel array values is the application's responsibility.</p>
426
427<p>Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p>
428
429<p>Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content (of type void) corresponding to the region. Once the Quantum (and/or Quantum) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p>
430
431<p>The format of the QueueAuthenticPixels() method is:</p>
432
433<pre class="text">
434Quantum *QueueAuthenticPixels(Image *image,const ssize_t x,
435  const ssize_t y,const size_t columns,const size_t rows,
436  ExceptionInfo *exception)
437</pre>
438
439<p>A description of each parameter follows:</p>
440
441<dd>
442</dd>
443
444<dd> </dd>
445<dl class="dl-horizontal">
446<dt>image</dt>
447<dd>the image. </dd>
448
449<dd> </dd>
450<dt>x,y,columns,rows</dt>
451<dd> These values define the perimeter of a region of pixels. </dd>
452
453<dd> </dd>
454<dt>exception</dt>
455<dd>return any errors or warnings in this structure. </dd>
456
457<dd>  </dd>
458</dl>
459<h2><a href="../../api/MagickCore/cache_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
460
461<p>SetPixelCacheVirtualMethod() sets the "virtual pixels" method for the pixel cache and returns the previous setting.  A virtual pixel is any pixel access that is outside the boundaries of the image cache.</p>
462
463<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
464
465<pre class="text">
466VirtualPixelMethod SetPixelCacheVirtualMethod(Image *image,
467  const VirtualPixelMethod virtual_pixel_method,ExceptionInfo *exception)
468</pre>
469
470<p>A description of each parameter follows:</p>
471
472<dd>
473</dd>
474
475<dd> </dd>
476<dl class="dl-horizontal">
477<dt>image</dt>
478<dd>the image. </dd>
479
480<dd> </dd>
481<dt>virtual_pixel_method</dt>
482<dd>choose the type of virtual pixel. </dd>
483
484<dd> </dd>
485<dt>exception</dt>
486<dd>return any errors or warnings in this structure. </dd>
487
488<dd>  </dd>
489</dl>
490<h2><a href="../../api/MagickCore/cache_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
491
492<p>SyncAuthenticPixels() saves the image pixels to the in-memory or disk cache. The method returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.</p>
493
494<p>The format of the SyncAuthenticPixels() method is:</p>
495
496<pre class="text">
497MagickBooleanType SyncAuthenticPixels(Image *image,
498  ExceptionInfo *exception)
499</pre>
500
501<p>A description of each parameter follows:</p>
502
503<dd>
504</dd>
505
506<dd> </dd>
507<dl class="dl-horizontal">
508<dt>image</dt>
509<dd>the image. </dd>
510
511<dd> </dd>
512<dt>exception</dt>
513<dd>return any errors or warnings in this structure. </dd>
514
515<dd>  </dd>
516</dl>
517</div>
518  </div>
519  </main><!-- /.container -->
520  <footer class="magick-footer">
521    <div class="container-fluid">
522      <a href="../../www/security-policy.html">Security</a> •
523      <a href="../../www/news.html">News</a>
524
525      <a href="cache.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../../images/wand.ico"/></a>
526
527      <a href="../../www/links.html">Related</a> •
528      <a href="../../www/sitemap.html">Sitemap</a>
529   <br/>
530     <a href="../../www/support.html">Sponsor</a> •
531     <a href="../../www/cite.html">Cite</a> •
532     <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
533     <a href="../../www/contact.html">Contact Us</a>
534   <br/>
535     <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> •
536     <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>
537    <br/>
538    <small>© 1999-2021 ImageMagick Studio LLC</small>
539    </div>
540  </footer>
541
542  <!-- Javascript assets -->
543  <script src="../../assets/magick.js" ></script>
544  </body>
545</html>
546