blob: ab0397c4750748b81ad637cdb218673a5b2a79d7 [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: Loadable Modules</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:, loadable, modules, 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="module.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="module.html#AcquireModuleInfo">AcquireModuleInfo</a> &#8226; <a href="module.html#DestroyModuleList">DestroyModuleList</a> &#8226; <a href="module.html#GetModuleInfo">GetModuleInfo</a> &#8226; <a href="module.html#GetModuleInfoList">GetModuleInfoList</a> &#8226; <a href="module.html#GetModuleList">GetModuleList</a> &#8226; <a href="module.html#GetMagickModulePath">GetMagickModulePath</a> &#8226; <a href="module.html#IsModuleTreeInstantiated">IsModuleTreeInstantiated</a> &#8226; <a href="module.html#InvokeDynamicImageFilter">InvokeDynamicImageFilter</a> &#8226; <a href="module.html#ListModuleInfo">ListModuleInfo</a> &#8226; <a href="module.html#OpenModule">OpenModule</a> &#8226; <a href="module.html#OpenModules">OpenModules</a> &#8226; <a href="module.html#RegisterModule">RegisterModule</a> &#8226; <a href="module.html#TagToCoderModuleName">TagToCoderModuleName</a> &#8226; <a href="module.html#TagToFilterModuleName">TagToFilterModuleName</a> &#8226; <a href="module.html#TagToModuleName">TagToModuleName</a> &#8226; <a href="module.html#UnregisterModule">UnregisterModule</a></p>
<h2><a href="../../api/MagickCore/module_8c.html" id="AcquireModuleInfo">AcquireModuleInfo</a></h2>
<p>AcquireModuleInfo() allocates the ModuleInfo structure.</p>
<p>The format of the AcquireModuleInfo method is:</p>
<pre class="text">
ModuleInfo *AcquireModuleInfo(const char *path,const char *tag)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>path</dt>
<dd>the path associated with the tag. </dd>
<dd> </dd>
<dt>tag</dt>
<dd>a character string that represents the image format we are looking for. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="DestroyModuleList">DestroyModuleList</a></h2>
<p>DestroyModuleList() unregisters any previously loaded modules and exits the module loaded environment.</p>
<p>The format of the DestroyModuleList module is:</p>
<pre class="text">
void DestroyModuleList(void)
</pre>
<h2><a href="../../api/MagickCore/module_8c.html" id="GetModuleInfo">GetModuleInfo</a></h2>
<p>GetModuleInfo() returns a pointer to a ModuleInfo structure that matches the specified tag. If tag is NULL, the head of the module list is returned. If no modules are loaded, or the requested module is not found, NULL is returned.</p>
<p>The format of the GetModuleInfo module is:</p>
<pre class="text">
ModuleInfo *GetModuleInfo(const char *tag,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>tag</dt>
<dd>a character string that represents the image format we are looking for. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="GetModuleInfoList">GetModuleInfoList</a></h2>
<p>GetModuleInfoList() returns any modules that match the specified pattern.</p>
<p>The format of the GetModuleInfoList function is:</p>
<pre class="text">
const ModuleInfo **GetModuleInfoList(const char *pattern,
size_t *number_modules,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>pattern</dt>
<dd>Specifies a pointer to a text string containing a pattern. </dd>
<dd> </dd>
<dt>number_modules</dt>
<dd> This integer returns the number of modules in the 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/module_8c.html" id="GetModuleList">GetModuleList</a></h2>
<p>GetModuleList() returns any image format modules that match the specified pattern.</p>
<p>The format of the GetModuleList function is:</p>
<pre class="text">
char **GetModuleList(const char *pattern,const MagickModuleType type,
size_t *number_modules,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>pattern</dt>
<dd>Specifies a pointer to a text string containing a pattern. </dd>
<dd> </dd>
<dt>type</dt>
<dd>choose from MagickImageCoderModule or MagickImageFilterModule. </dd>
<dd> </dd>
<dt>number_modules</dt>
<dd> This integer returns the number of modules in the 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/module_8c.html" id="GetMagickModulePath">GetMagickModulePath</a></h2>
<p>GetMagickModulePath() finds a module with the specified module type and filename.</p>
<p>The format of the GetMagickModulePath module is:</p>
<pre class="text">
MagickBooleanType GetMagickModulePath(const char *filename,
MagickModuleType module_type,char *path,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>filename</dt>
<dd>the module file name. </dd>
<dd> </dd>
<dt>module_type</dt>
<dd>the module type: MagickImageCoderModule or MagickImageFilterModule. </dd>
<dd> </dd>
<dt>path</dt>
<dd>the path associated with the filename. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="IsModuleTreeInstantiated">IsModuleTreeInstantiated</a></h2>
<p>IsModuleTreeInstantiated() determines if the module tree is instantiated. If not, it instantiates the tree and returns it.</p>
<p>The format of the IsModuleTreeInstantiated() method is:</p>
<pre class="text">
IsModuleTreeInstantiated()
</pre>
<h2><a href="../../api/MagickCore/module_8c.html" id="InvokeDynamicImageFilter">InvokeDynamicImageFilter</a></h2>
<p>InvokeDynamicImageFilter() invokes a dynamic image filter.</p>
<p>The format of the InvokeDynamicImageFilter module is:</p>
<pre class="text">
MagickBooleanType InvokeDynamicImageFilter(const char *tag,Image **image,
const int argc,const char **argv,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>tag</dt>
<dd>a character string that represents the name of the particular module. </dd>
<dd> </dd>
<dt>image</dt>
<dd>the image. </dd>
<dd> </dd>
<dt>argc</dt>
<dd>a pointer to an integer describing the number of elements in the argument vector. </dd>
<dd> </dd>
<dt>argv</dt>
<dd>a pointer to a text array containing the command line arguments. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="ListModuleInfo">ListModuleInfo</a></h2>
<p>ListModuleInfo() lists the module info to a file.</p>
<p>The format of the ListModuleInfo module is:</p>
<pre class="text">
MagickBooleanType ListModuleInfo(FILE *file,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows.</p>
<dt>file</dt>
<p>An pointer to a FILE.</p>
<dt>exception</dt>
<p>return any errors or warnings in this structure.</p>
<h2><a href="../../api/MagickCore/module_8c.html" id="OpenModule">OpenModule</a></h2>
<p>OpenModule() loads a module, and invokes its registration module. It returns MagickTrue on success, and MagickFalse if there is an error.</p>
<p>The format of the OpenModule module is:</p>
<pre class="text">
MagickBooleanType OpenModule(const char *module,ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>module</dt>
<dd>a character string that indicates the module to load. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="OpenModules">OpenModules</a></h2>
<p>OpenModules() loads all available modules.</p>
<p>The format of the OpenModules module is:</p>
<pre class="text">
MagickBooleanType OpenModules(ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="RegisterModule">RegisterModule</a></h2>
<p>RegisterModule() adds an entry to the module list. It returns a pointer to the registered entry on success.</p>
<p>The format of the RegisterModule module is:</p>
<pre class="text">
ModuleInfo *RegisterModule(const ModuleInfo *module_info,
ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>info</dt>
<dd>a pointer to the registered entry is returned. </dd>
<dd> </dd>
<dt>module_info</dt>
<dd>a pointer to the ModuleInfo structure to register. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="TagToCoderModuleName">TagToCoderModuleName</a></h2>
<p>TagToCoderModuleName() munges a module tag and obtains the filename of the corresponding module.</p>
<p>The format of the TagToCoderModuleName module is:</p>
<pre class="text">
char *TagToCoderModuleName(const char *tag,char *name)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>tag</dt>
<dd>a character string representing the module tag. </dd>
<dd> </dd>
<dt>name</dt>
<dd>return the module name here. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="TagToFilterModuleName">TagToFilterModuleName</a></h2>
<p>TagToFilterModuleName() munges a module tag and returns the filename of the corresponding filter module.</p>
<p>The format of the TagToFilterModuleName module is:</p>
<pre class="text">
void TagToFilterModuleName(const char *tag,char name)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>tag</dt>
<dd>a character string representing the module tag. </dd>
<dd> </dd>
<dt>name</dt>
<dd>return the filter name here. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="TagToModuleName">TagToModuleName</a></h2>
<p>TagToModuleName() munges the module tag name and returns an upper-case tag name as the input string, and a user-provided format.</p>
<p>The format of the TagToModuleName module is:</p>
<pre class="text">
TagToModuleName(const char *tag,const char *format,char *module)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>tag</dt>
<dd>the module tag. </dd>
<dd> </dd>
<dt>format</dt>
<dd>a sprintf-compatible format string containing s where the upper-case tag name is to be inserted. </dd>
<dd> </dd>
<dt>module</dt>
<dd>pointer to a destination buffer for the formatted result. </dd>
<dd> </dd>
</dl>
<h2><a href="../../api/MagickCore/module_8c.html" id="UnregisterModule">UnregisterModule</a></h2>
<p>UnregisterModule() unloads a module, and invokes its de-registration module. Returns MagickTrue on success, and MagickFalse if there is an error.</p>
<p>The format of the UnregisterModule module is:</p>
<pre class="text">
MagickBooleanType UnregisterModule(const ModuleInfo *module_info,
ExceptionInfo *exception)
</pre>
<p>A description of each parameter follows:</p>
<dd>
</dd>
<dd> </dd>
<dl class="dl-horizontal">
<dt>module_info</dt>
<dd>the module info. </dd>
<dd> </dd>
<dt>exception</dt>
<dd>return any errors or warnings in this structure. </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="module.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>