• 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: Loadable Modules</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:, loadable, modules, 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="module.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="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>
95
96<h2><a href="../../api/MagickCore/module_8c.html" id="AcquireModuleInfo">AcquireModuleInfo</a></h2>
97
98<p>AcquireModuleInfo() allocates the ModuleInfo structure.</p>
99
100<p>The format of the AcquireModuleInfo method is:</p>
101
102<pre class="text">
103ModuleInfo *AcquireModuleInfo(const char *path,const char *tag)
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>path</dt>
114<dd>the path associated with the tag. </dd>
115
116<dd> </dd>
117<dt>tag</dt>
118<dd>a character string that represents the image format we are looking for. </dd>
119
120<dd>  </dd>
121</dl>
122<h2><a href="../../api/MagickCore/module_8c.html" id="DestroyModuleList">DestroyModuleList</a></h2>
123
124<p>DestroyModuleList() unregisters any previously loaded modules and exits the module loaded environment.</p>
125
126<p>The format of the DestroyModuleList module is:</p>
127
128<pre class="text">
129void DestroyModuleList(void)
130</pre>
131
132<h2><a href="../../api/MagickCore/module_8c.html" id="GetModuleInfo">GetModuleInfo</a></h2>
133
134<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>
135
136<p>The format of the GetModuleInfo module is:</p>
137
138<pre class="text">
139ModuleInfo *GetModuleInfo(const char *tag,ExceptionInfo *exception)
140</pre>
141
142<p>A description of each parameter follows:</p>
143
144<dd>
145</dd>
146
147<dd> </dd>
148<dl class="dl-horizontal">
149<dt>tag</dt>
150<dd>a character string that represents the image format we are looking for. </dd>
151
152<dd> </dd>
153<dt>exception</dt>
154<dd>return any errors or warnings in this structure. </dd>
155
156<dd>  </dd>
157</dl>
158<h2><a href="../../api/MagickCore/module_8c.html" id="GetModuleInfoList">GetModuleInfoList</a></h2>
159
160<p>GetModuleInfoList() returns any modules that match the specified pattern.</p>
161
162<p>The format of the GetModuleInfoList function is:</p>
163
164<pre class="text">
165const ModuleInfo **GetModuleInfoList(const char *pattern,
166  size_t *number_modules,ExceptionInfo *exception)
167</pre>
168
169<p>A description of each parameter follows:</p>
170
171<dd>
172</dd>
173
174<dd> </dd>
175<dl class="dl-horizontal">
176<dt>pattern</dt>
177<dd>Specifies a pointer to a text string containing a pattern. </dd>
178
179<dd> </dd>
180<dt>number_modules</dt>
181<dd> This integer returns the number of modules in the list. </dd>
182
183<dd> </dd>
184<dt>exception</dt>
185<dd>return any errors or warnings in this structure. </dd>
186
187<dd>  </dd>
188</dl>
189<h2><a href="../../api/MagickCore/module_8c.html" id="GetModuleList">GetModuleList</a></h2>
190
191<p>GetModuleList() returns any image format modules that match the specified pattern.</p>
192
193<p>The format of the GetModuleList function is:</p>
194
195<pre class="text">
196char **GetModuleList(const char *pattern,const MagickModuleType type,
197  size_t *number_modules,ExceptionInfo *exception)
198</pre>
199
200<p>A description of each parameter follows:</p>
201
202<dd>
203</dd>
204
205<dd> </dd>
206<dl class="dl-horizontal">
207<dt>pattern</dt>
208<dd>Specifies a pointer to a text string containing a pattern. </dd>
209
210<dd> </dd>
211<dt>type</dt>
212<dd>choose from MagickImageCoderModule or MagickImageFilterModule. </dd>
213
214<dd> </dd>
215<dt>number_modules</dt>
216<dd> This integer returns the number of modules in the list. </dd>
217
218<dd> </dd>
219<dt>exception</dt>
220<dd>return any errors or warnings in this structure. </dd>
221
222<dd>  </dd>
223</dl>
224<h2><a href="../../api/MagickCore/module_8c.html" id="GetMagickModulePath">GetMagickModulePath</a></h2>
225
226<p>GetMagickModulePath() finds a module with the specified module type and filename.</p>
227
228<p>The format of the GetMagickModulePath module is:</p>
229
230<pre class="text">
231MagickBooleanType GetMagickModulePath(const char *filename,
232  MagickModuleType module_type,char *path,ExceptionInfo *exception)
233</pre>
234
235<p>A description of each parameter follows:</p>
236
237<dd>
238</dd>
239
240<dd> </dd>
241<dl class="dl-horizontal">
242<dt>filename</dt>
243<dd>the module file name. </dd>
244
245<dd> </dd>
246<dt>module_type</dt>
247<dd>the module type: MagickImageCoderModule or MagickImageFilterModule. </dd>
248
249<dd> </dd>
250<dt>path</dt>
251<dd>the path associated with the filename. </dd>
252
253<dd> </dd>
254<dt>exception</dt>
255<dd>return any errors or warnings in this structure. </dd>
256
257<dd>  </dd>
258</dl>
259<h2><a href="../../api/MagickCore/module_8c.html" id="IsModuleTreeInstantiated">IsModuleTreeInstantiated</a></h2>
260
261<p>IsModuleTreeInstantiated() determines if the module tree is instantiated. If not, it instantiates the tree and returns it.</p>
262
263<p>The format of the IsModuleTreeInstantiated() method is:</p>
264
265<pre class="text">
266IsModuleTreeInstantiated()
267</pre>
268
269<h2><a href="../../api/MagickCore/module_8c.html" id="InvokeDynamicImageFilter">InvokeDynamicImageFilter</a></h2>
270
271<p>InvokeDynamicImageFilter() invokes a dynamic image filter.</p>
272
273<p>The format of the InvokeDynamicImageFilter module is:</p>
274
275<pre class="text">
276MagickBooleanType InvokeDynamicImageFilter(const char *tag,Image **image,
277  const int argc,const char **argv,ExceptionInfo *exception)
278</pre>
279
280<p>A description of each parameter follows:</p>
281
282<dd>
283</dd>
284
285<dd> </dd>
286<dl class="dl-horizontal">
287<dt>tag</dt>
288<dd>a character string that represents the name of the particular module. </dd>
289
290<dd> </dd>
291<dt>image</dt>
292<dd>the image. </dd>
293
294<dd> </dd>
295<dt>argc</dt>
296<dd>a pointer to an integer describing the number of elements in the argument vector. </dd>
297
298<dd> </dd>
299<dt>argv</dt>
300<dd>a pointer to a text array containing the command line arguments. </dd>
301
302<dd> </dd>
303<dt>exception</dt>
304<dd>return any errors or warnings in this structure. </dd>
305
306<dd>  </dd>
307</dl>
308<h2><a href="../../api/MagickCore/module_8c.html" id="ListModuleInfo">ListModuleInfo</a></h2>
309
310<p>ListModuleInfo() lists the module info to a file.</p>
311
312<p>The format of the ListModuleInfo module is:</p>
313
314<pre class="text">
315MagickBooleanType ListModuleInfo(FILE *file,ExceptionInfo *exception)
316</pre>
317
318<p>A description of each parameter follows.</p>
319
320<dt>file</dt>
321<p>An pointer to a FILE.</p>
322
323<dt>exception</dt>
324<p>return any errors or warnings in this structure.</p>
325
326<h2><a href="../../api/MagickCore/module_8c.html" id="OpenModule">OpenModule</a></h2>
327
328<p>OpenModule() loads a module, and invokes its registration module.  It returns MagickTrue on success, and MagickFalse if there is an error.</p>
329
330<p>The format of the OpenModule module is:</p>
331
332<pre class="text">
333MagickBooleanType OpenModule(const char *module,ExceptionInfo *exception)
334</pre>
335
336<p>A description of each parameter follows:</p>
337
338<dd>
339</dd>
340
341<dd> </dd>
342<dl class="dl-horizontal">
343<dt>module</dt>
344<dd>a character string that indicates the module to load. </dd>
345
346<dd> </dd>
347<dt>exception</dt>
348<dd>return any errors or warnings in this structure. </dd>
349
350<dd>  </dd>
351</dl>
352<h2><a href="../../api/MagickCore/module_8c.html" id="OpenModules">OpenModules</a></h2>
353
354<p>OpenModules() loads all available modules.</p>
355
356<p>The format of the OpenModules module is:</p>
357
358<pre class="text">
359MagickBooleanType OpenModules(ExceptionInfo *exception)
360</pre>
361
362<p>A description of each parameter follows:</p>
363
364<dd>
365</dd>
366
367<dd> </dd>
368<dl class="dl-horizontal">
369<dt>exception</dt>
370<dd>return any errors or warnings in this structure. </dd>
371
372<dd>  </dd>
373</dl>
374<h2><a href="../../api/MagickCore/module_8c.html" id="RegisterModule">RegisterModule</a></h2>
375
376<p>RegisterModule() adds an entry to the module list.  It returns a pointer to the registered entry on success.</p>
377
378<p>The format of the RegisterModule module is:</p>
379
380<pre class="text">
381ModuleInfo *RegisterModule(const ModuleInfo *module_info,
382  ExceptionInfo *exception)
383</pre>
384
385<p>A description of each parameter follows:</p>
386
387<dd>
388</dd>
389
390<dd> </dd>
391<dl class="dl-horizontal">
392<dt>info</dt>
393<dd>a pointer to the registered entry is returned. </dd>
394
395<dd> </dd>
396<dt>module_info</dt>
397<dd>a pointer to the ModuleInfo structure to register. </dd>
398
399<dd> </dd>
400<dt>exception</dt>
401<dd>return any errors or warnings in this structure. </dd>
402
403<dd>  </dd>
404</dl>
405<h2><a href="../../api/MagickCore/module_8c.html" id="TagToCoderModuleName">TagToCoderModuleName</a></h2>
406
407<p>TagToCoderModuleName() munges a module tag and obtains the filename of the corresponding module.</p>
408
409<p>The format of the TagToCoderModuleName module is:</p>
410
411<pre class="text">
412char *TagToCoderModuleName(const char *tag,char *name)
413</pre>
414
415<p>A description of each parameter follows:</p>
416
417<dd>
418</dd>
419
420<dd> </dd>
421<dl class="dl-horizontal">
422<dt>tag</dt>
423<dd>a character string representing the module tag. </dd>
424
425<dd> </dd>
426<dt>name</dt>
427<dd>return the module name here. </dd>
428
429<dd>  </dd>
430</dl>
431<h2><a href="../../api/MagickCore/module_8c.html" id="TagToFilterModuleName">TagToFilterModuleName</a></h2>
432
433<p>TagToFilterModuleName() munges a module tag and returns the filename of the corresponding filter module.</p>
434
435<p>The format of the TagToFilterModuleName module is:</p>
436
437<pre class="text">
438void TagToFilterModuleName(const char *tag,char name)
439</pre>
440
441<p>A description of each parameter follows:</p>
442
443<dd>
444</dd>
445
446<dd> </dd>
447<dl class="dl-horizontal">
448<dt>tag</dt>
449<dd>a character string representing the module tag. </dd>
450
451<dd> </dd>
452<dt>name</dt>
453<dd>return the filter name here. </dd>
454
455<dd>  </dd>
456</dl>
457<h2><a href="../../api/MagickCore/module_8c.html" id="TagToModuleName">TagToModuleName</a></h2>
458
459<p>TagToModuleName() munges the module tag name and returns an upper-case tag name as the input string, and a user-provided format.</p>
460
461<p>The format of the TagToModuleName module is:</p>
462
463<pre class="text">
464TagToModuleName(const char *tag,const char *format,char *module)
465</pre>
466
467<p>A description of each parameter follows:</p>
468
469<dd>
470</dd>
471
472<dd> </dd>
473<dl class="dl-horizontal">
474<dt>tag</dt>
475<dd>the module tag. </dd>
476
477<dd> </dd>
478<dt>format</dt>
479<dd>a sprintf-compatible format string containing s where the upper-case tag name is to be inserted. </dd>
480
481<dd> </dd>
482<dt>module</dt>
483<dd>pointer to a destination buffer for the formatted result. </dd>
484
485<dd>  </dd>
486</dl>
487<h2><a href="../../api/MagickCore/module_8c.html" id="UnregisterModule">UnregisterModule</a></h2>
488
489<p>UnregisterModule() unloads a module, and invokes its de-registration module. Returns MagickTrue on success, and MagickFalse if there is an error.</p>
490
491<p>The format of the UnregisterModule module is:</p>
492
493<pre class="text">
494MagickBooleanType UnregisterModule(const ModuleInfo *module_info,
495  ExceptionInfo *exception)
496</pre>
497
498<p>A description of each parameter follows:</p>
499
500<dd>
501</dd>
502
503<dd> </dd>
504<dl class="dl-horizontal">
505<dt>module_info</dt>
506<dd>the module info. </dd>
507
508<dd> </dd>
509<dt>exception</dt>
510<dd>return any errors or warnings in this structure. </dd>
511
512<dd>  </dd>
513</dl>
514</div>
515  </div>
516  </main><!-- /.container -->
517  <footer class="magick-footer">
518    <div class="container-fluid">
519      <a href="../../www/security-policy.html">Security</a> •
520      <a href="../../www/news.html">News</a>
521
522      <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>
523
524      <a href="../../www/links.html">Related</a> •
525      <a href="../../www/sitemap.html">Sitemap</a>
526   <br/>
527     <a href="../../www/support.html">Sponsor</a> •
528     <a href="../../www/cite.html">Cite</a> •
529     <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
530     <a href="../../www/contact.html">Contact Us</a>
531   <br/>
532     <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> •
533     <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>
534    <br/>
535    <small>© 1999-2021 ImageMagick Studio LLC</small>
536    </div>
537  </footer>
538
539  <!-- Javascript assets -->
540  <script src="../../assets/magick.js" ></script>
541  </body>
542</html>
543