blob: 98fc1be1e1968752a13f5718cb2ed6025d20bc36 [file] [log] [blame]
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ImageMagick - MagickCore, C API: Working with Image Lists</title>
<meta name="application-name" content="ImageMagick" />
<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." />
<meta name="application-url" content="https://imagemagick.org" />
<meta name="generator" content="PHP" />
<meta name="keywords" content="magickcore, c, api:, working, with, image, lists, image processing software" />
<meta name="rating" content="GENERAL" />
<meta name="robots" content="INDEX, FOLLOW" />
<meta name="generator" content="ImageMagick Studio LLC" />
<meta name="author" content="ImageMagick Studio LLC" />
<meta name="revisit-after" content="2 DAYS" />
<meta name="resource-type" content="document" />
<meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
<meta name="distribution" content="Global" />
<meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
<meta property='og:url' content='../../' />
<meta property='og:title' content='ImageMagick' />
<meta property='og:image' content='../../../images/logo.png' />
<meta property='og:type' content='website' />
<meta property='og:site_name' content='ImageMagick' />
<meta property='og:description' content="Create, Edit, Compose, or Convert Digital Images" />
<meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
<link href="list.html" rel="canonical" />
<link href="../../../images/wand.png" rel="icon" />
<link href="../../../images/wand.ico" rel="shortcut icon" />
<link href="../../assets/magick.css" rel="stylesheet" />
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
<div class="container-fluid">
<a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../../images/wand.ico"/></a>
<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">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="magick-navbars">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link " href="../../www/index.html">Home</a>
</li>
<li class="nav-item">
<a class="nav-link " href="../../www/download.html">Download</a>
</li>
<li class="nav-item">
<a class="nav-link " href="../../www/command-line-tools.html">Tools</a>
</li>
<li class="nav-item">
<a class="nav-link " href="../../www/command-line-processing.html">CLI</a>
</li>
<li class="nav-item">
<a class="nav-link " href="../../www/develop.html">Develop</a>
</li>
<li class="nav-item">
<a class="nav-link" target="_blank" href="https://github.com/ImageMagick/ImageMagick/discussions">Community</a>
</li>
<li class="nav-item">
<iframe src="https://github.com/sponsors/ImageMagick/button" title="Sponsor ImageMagick" height="35" width="107" style="border: 0;"></iframe>
</li>
</ul>
<form class="d-flex form-inline" action="https://imagemagick.org/script/search.php">
<input class="form-control me-2" type="text" name="q" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit" name="sa">Search</button>
</form>
</div>
</div>
</nav>
<div class="container">
<script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-3129977114552745"
data-ad-slot="6345125851"
data-full-width-responsive="true"
data-ad-format="horizontal"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<main class="container">
<div class="magick-template">
<div class="magick-header">
<p class="text-center"><a href="list.html#AppendImageToList">AppendImageToList</a> &#8226; <a href="list.html#CloneImageList">CloneImageList</a> &#8226; <a href="list.html#CloneImages">CloneImages</a> &#8226; <a href="list.html#DeleteImageFromList">DeleteImageFromList</a> &#8226; <a href="list.html#DeleteImages">DeleteImages</a> &#8226; <a href="list.html#DestroyImageList">DestroyImageList</a> &#8226; <a href="list.html#DuplicateImages">DuplicateImages</a> &#8226; <a href="list.html#GetFirstImageInList">GetFirstImageInList</a> &#8226; <a href="list.html#GetImageFromList">GetImageFromList</a> &#8226; <a href="list.html#GetImageIndexInList">GetImageIndexInList</a> &#8226; <a href="list.html#GetImageListLength">GetImageListLength</a> &#8226; <a href="list.html#GetLastImageInList">GetLastImageInList</a> &#8226; <a href="list.html#GetNextImageInList">GetNextImageInList</a> &#8226; <a href="list.html#GetPreviousImageInList">GetPreviousImageInList</a> &#8226; <a href="list.html#ImageListToArray">ImageListToArray</a> &#8226; <a href="list.html#InsertImageInList">InsertImageInList</a> &#8226; <a href="list.html#NewImageList">NewImageList</a> &#8226; <a href="list.html#PrependImageToList">PrependImageToList</a> &#8226; <a href="list.html#RemoveImageFromList">RemoveImageFromList</a> &#8226; <a href="list.html#RemoveFirstImageFromList">RemoveFirstImageFromList</a> &#8226; <a href="list.html#RemoveLastImageFromList">RemoveLastImageFromList</a> &#8226; <a href="list.html#ReplaceImageInList">ReplaceImageInList</a> &#8226; <a href="list.html#ReplaceImageInListReturnLast">ReplaceImageInListReturnLast</a> &#8226; <a href="list.html#ReverseImageList">ReverseImageList</a> &#8226; <a href="list.html#SpliceImageIntoList">SpliceImageIntoList</a> &#8226; <a href="list.html#SplitImageList">SplitImageList</a></p>
<h2><a href="../../api/MagickCore/list_8c.html" id="AppendImageToList">AppendImageToList</a></h2>
<p>AppendImageToList() appends the second image list to the end of the first list. The given image list pointer is left unchanged, unless it was empty.</p>
<p>The format of the AppendImageToList method is:</p>
<pre class="text">
AppendImageToList(Image *images,const Image *image)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list to be appended to. </dd>
<dd> </dd>
<dt>image</dt>
<dd>the appended image or image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="CloneImageList">CloneImageList</a></h2>
<p>CloneImageList() returns a duplicate of the image list.</p>
<p>The format of the CloneImageList method is:</p>
<pre class="text">
Image *CloneImageList(const Image *images,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="CloneImages">CloneImages</a></h2>
<p>CloneImages() clones one or more images from an image sequence, using a comma separated list of image numbers or ranges.</p>
<p>The numbers start at 0 for the first image in the list, while negative numbers refer to images starting counting from the end of the range. Images may be referred to multiple times to clone them multiple times. Images referred beyond the available number of images in list are ignored.</p>
<p>Images referenced may be reversed, and results in a clone of those images also being made with a reversed order.</p>
<p>The format of the CloneImages method is:</p>
<pre class="text">
Image *CloneImages(const Image *images,const char *scenes,
ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image sequence. </dd>
<dd> </dd>
<dt>scenes</dt>
<dd>This character string specifies which scenes to clone (e.g. 1,3-5,7-3,2). </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="DeleteImageFromList">DeleteImageFromList</a></h2>
<p>DeleteImageFromList() deletes an image from the list. List pointer is moved to the next image, if one is present. See RemoveImageFromList().</p>
<p>The format of the DeleteImageFromList method is:</p>
<pre class="text">
DeleteImageFromList(Image **images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="DeleteImages">DeleteImages</a></h2>
<p>DeleteImages() deletes one or more images from an image sequence, using a comma separated list of image numbers or ranges.</p>
<p>The numbers start at 0 for the first image, while negative numbers refer to images starting counting from the end of the range. Images may be referred to multiple times without problems. Image referred beyond the available number of images in list are ignored.</p>
<p>If the referenced images are in the reverse order, that range will be completely ignored, unlike CloneImages().</p>
<p>The format of the DeleteImages method is:</p>
<pre class="text">
DeleteImages(Image **images,const char *scenes,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image sequence. </dd>
<dd> </dd>
<dt>scenes</dt>
<dd>This character string specifies which scenes to delete (e.g. 1,3-5,-2-6,2). </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="DestroyImageList">DestroyImageList</a></h2>
<p>DestroyImageList() destroys an image list.</p>
<p>The format of the DestroyImageList method is:</p>
<pre class="text">
Image *DestroyImageList(Image *image)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>image</dt>
<dd>the image sequence. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="DuplicateImages">DuplicateImages</a></h2>
<p>DuplicateImages() duplicates one or more images from an image sequence, using a count and a comma separated list of image numbers or ranges.</p>
<p>The numbers start at 0 for the first image, while negative numbers refer to images starting counting from the end of the range. Images may be referred to multiple times without problems. Image referred beyond the available number of images in list are ignored.</p>
<p>The format of the DuplicateImages method is:</p>
<pre class="text">
Image *DuplicateImages(Image *images,const size_t number_duplicates,
const char *scenes,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image sequence. </dd>
<dd> </dd>
<dt>number_duplicates</dt>
<dd>duplicate the image sequence this number of times. </dd>
<dd> </dd>
<dt>scenes</dt>
<dd>This character string specifies which scenes to duplicate (e.g. 1,3-5,-2-6,2). </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetFirstImageInList">GetFirstImageInList</a></h2>
<p>GetFirstImageInList() returns a pointer to the first image in the list.</p>
<p>The format of the GetFirstImageInList method is:</p>
<pre class="text">
Image *GetFirstImageInList(const Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetImageFromList">GetImageFromList</a></h2>
<p>GetImageFromList() returns an image at the specified index from the image list. Starting with 0 as the first image in the list.</p>
<p>A negative offset will return the image from the end of the list, such that an index of -1 is the last image.</p>
<p>If no such image exists at the specified offset a NULL image pointer is returned. This will only happen if index is less that the negative of the list length, or larger than list length -1. EG: ( -N to N-1 )</p>
<p>The format of the GetImageFromList method is:</p>
<pre class="text">
Image *GetImageFromList(const Image *images,const ssize_t index)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
<dt>index</dt>
<dd>the position within the list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetImageIndexInList">GetImageIndexInList</a></h2>
<p>GetImageIndexInList() returns the offset in the list of the specified image.</p>
<p>The format of the GetImageIndexInList method is:</p>
<pre class="text">
ssize_t GetImageIndexInList(const Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetImageListLength">GetImageListLength</a></h2>
<p>GetImageListLength() returns the length of the list (the number of images in the list).</p>
<p>The format of the GetImageListLength method is:</p>
<pre class="text">
size_t GetImageListLength(const Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetLastImageInList">GetLastImageInList</a></h2>
<p>GetLastImageInList() returns a pointer to the last image in the list.</p>
<p>The format of the GetLastImageInList method is:</p>
<pre class="text">
Image *GetLastImageInList(const Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetNextImageInList">GetNextImageInList</a></h2>
<p>GetNextImageInList() returns the next image in the list.</p>
<p>The format of the GetNextImageInList method is:</p>
<pre class="text">
Image *GetNextImageInList(const Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="GetPreviousImageInList">GetPreviousImageInList</a></h2>
<p>GetPreviousImageInList() returns the previous image in the list.</p>
<p>The format of the GetPreviousImageInList method is:</p>
<pre class="text">
Image *GetPreviousImageInList(const Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="ImageListToArray">ImageListToArray</a></h2>
<p>ImageListToArray() is a convenience method that converts an image list to a sequential array, with a NULL image pointer at the end of the array.</p>
<p>The images remain part of the original image list, with the array providing an alternative means of indexing the image array.</p>
<p>group = ImageListToArray(images, exception); while (i = 0; group[i] != (Image *) NULL; i++) printf("s\n", group[i]-&gt;filename); printf("d images\n", i); group = RelinquishMagickMemory(group);</p>
<p>The format of the ImageListToArray method is:</p>
<pre class="text">
Image **ImageListToArray(const Image *images,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>image</dt>
<dd>the image list. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="InsertImageInList">InsertImageInList</a></h2>
<p>InsertImageInList() insert the given image or image list, into the first image list, immediately AFTER the image pointed to. The given image list pointer is left unchanged unless previously empty.</p>
<p>The format of the InsertImageInList method is:</p>
<pre class="text">
InsertImageInList(Image **images,Image *insert)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list to insert into. </dd>
<dd> </dd>
<dt>insert</dt>
<dd>the image list to insert. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="NewImageList">NewImageList</a></h2>
<p>NewImageList() creates an empty image list.</p>
<p>The format of the NewImageList method is:</p>
<pre class="text">
Image *NewImageList(void)
</pre>
<h2><a href="../../api/MagickCore/list_8c.html" id="PrependImageToList">PrependImageToList</a></h2>
<p>PrependImageToList() prepends the image to the beginning of the list.</p>
<p>The format of the PrependImageToList method is:</p>
<pre class="text">
PrependImageToList(Image *images,Image *image)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
<dt>image</dt>
<dd>the image. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="RemoveImageFromList">RemoveImageFromList</a></h2>
<p>RemoveImageFromList() removes and returns the image pointed to.</p>
<p>The given image list pointer is set to point to the next image in list if it exists, otherwise it is set to the previous image, or NULL if list was emptied.</p>
<p>The format of the RemoveImageFromList method is:</p>
<pre class="text">
Image *RemoveImageFromList(Image **images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="RemoveFirstImageFromList">RemoveFirstImageFromList</a></h2>
<p>RemoveFirstImageFromList() removes and returns the first image in the list.</p>
<p>If the given image list pointer pointed to the removed first image, it is set to the new first image of list, or NULL if list was emptied, otherwise it is left as is.</p>
<p>The format of the RemoveFirstImageFromList method is:</p>
<pre class="text">
Image *RemoveFirstImageFromList(Image **images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="RemoveLastImageFromList">RemoveLastImageFromList</a></h2>
<p>RemoveLastImageFromList() removes and returns the last image from the list.</p>
<p>If the given image list pointer pointed to the removed last image, it is set to the new last image of list, or NULL if list was emptied, otherwise it is left as is.</p>
<p>The format of the RemoveLastImageFromList method is:</p>
<pre class="text">
Image *RemoveLastImageFromList(Image **images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="ReplaceImageInList">ReplaceImageInList</a></h2>
<p>ReplaceImageInList() replaces an image in the list with the given image, or list of images. Old image is destroyed.</p>
<p>The images list pointer is set to point to the first image of the inserted list of images.</p>
<p>The format of the ReplaceImageInList method is:</p>
<pre class="text">
ReplaceImageInList(Image **images,Image *replace)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the list and pointer to image to replace </dd>
<dd> </dd>
<dt>replace</dt>
<dd>the image or image list replacing the original </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="ReplaceImageInListReturnLast">ReplaceImageInListReturnLast</a></h2>
<p>ReplaceImageInListReturnLast() is exactly as ReplaceImageInList() except the images pointer is set to the last image in the list of replacement images.</p>
<p>This allows you to simply use GetNextImageInList() to go to the image that follows the just replaced image, even if a list of replacement images was inserted.</p>
<p>The format of the ReplaceImageInList method is:</p>
<pre class="text">
ReplaceImageInListReturnLast(Image **images,Image *replace)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the list and pointer to image to replace </dd>
<dd> </dd>
<dt>replace</dt>
<dd>the image or image list replacing the original </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="ReverseImageList">ReverseImageList</a></h2>
<p>ReverseImageList() reverses the order of an image list. The list pointer is reset to that start of the re-ordered list.</p>
<p>The format of the ReverseImageList method is:</p>
<pre class="text">
void ReverseImageList(Image **images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="SpliceImageIntoList">SpliceImageIntoList</a></h2>
<p>SpliceImageIntoList() removes 'length' images from the list and replaces them with the specified splice. Removed images are returned.</p>
<p>The format of the SpliceImageIntoList method is:</p>
<pre class="text">
SpliceImageIntoList(Image **images,const size_t,
const Image *splice)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
<dt>length</dt>
<dd>the length of the image list to remove. </dd>
<dd> </dd>
<dt>splice</dt>
<dd>Replace the removed image list with this list. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/list_8c.html" id="SplitImageList">SplitImageList</a></h2>
<p>SplitImageList() splits an image into two lists, after given image The list that was split off is returned, which may be empty.</p>
<p>The format of the SplitImageList method is:</p>
<pre class="text">
Image *SplitImageList(Image *images)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>images</dt>
<dd>the image list. </dd>
<dd> </dd>
</dl>
</div>
</div>
</main><!-- /.container -->
<footer class="magick-footer">
<div class="container-fluid">
<a href="../../www/security-policy.html">Security</a>
<a href="../../www/news.html">News</a>
<a href="list.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../../images/wand.ico"/></a>
<a href="../../www/links.html">Related</a>
<a href="../../www/sitemap.html">Sitemap</a>
<br/>
<a href="../../www/support.html">Sponsor</a>
<a href="../../www/cite.html">Cite</a>
<a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a>
<a href="../../www/contact.html">Contact Us</a>
<br/>
<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>
<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>
<br/>
<small>© 1999-2021 ImageMagick Studio LLC</small>
</div>
</footer>
<!-- Javascript assets -->
<script src="../../assets/magick.js" ></script>
</body>
</html>