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> • <a href="module.html#DestroyModuleList">DestroyModuleList</a> • <a href="module.html#GetModuleInfo">GetModuleInfo</a> • <a href="module.html#GetModuleInfoList">GetModuleInfoList</a> • <a href="module.html#GetModuleList">GetModuleList</a> • <a href="module.html#GetMagickModulePath">GetMagickModulePath</a> • <a href="module.html#IsModuleTreeInstantiated">IsModuleTreeInstantiated</a> • <a href="module.html#InvokeDynamicImageFilter">InvokeDynamicImageFilter</a> • <a href="module.html#ListModuleInfo">ListModuleInfo</a> • <a href="module.html#OpenModule">OpenModule</a> • <a href="module.html#OpenModules">OpenModules</a> • <a href="module.html#RegisterModule">RegisterModule</a> • <a href="module.html#TagToCoderModuleName">TagToCoderModuleName</a> • <a href="module.html#TagToFilterModuleName">TagToFilterModuleName</a> • <a href="module.html#TagToModuleName">TagToModuleName</a> • <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&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