2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 % SSSSS TTTTT AAA TTTTT IIIII CCCC %
10 % SSSSS T A A T IIIII CCCC %
13 % MagickCore Static Methods %
20 % Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization %
21 % dedicated to making software imaging solutions freely available. %
23 % You may not use this file except in compliance with the License. You may %
24 % obtain a copy of the License at %
26 % https://www.imagemagick.org/script/license.php %
28 % Unless required by applicable law or agreed to in writing, software %
29 % distributed under the License is distributed on an "AS IS" BASIS, %
30 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
31 % See the License for the specific language governing permissions and %
32 % limitations under the License. %
34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 #include "MagickCore/studio.h"
44 #include "MagickCore/exception-private.h"
45 #include "MagickCore/image.h"
46 #include "MagickCore/module.h"
47 #include "MagickCore/policy.h"
48 #include "MagickCore/static.h"
49 #include "MagickCore/string_.h"
52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 % I n v o k e S t a t i c I m a g e F i l t e r %
60 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62 % InvokeStaticImageFilter() invokes a static image filter.
64 % The format of the InvokeStaticImageFilter method is:
66 % MagickBooleanType InvokeStaticImageFilter(const char *tag,Image **image,
67 % const int argc,const char **argv)
69 % A description of each parameter follows:
71 % o tag: the module tag.
75 % o argc: the number of elements in the argument vector.
77 % o argv: A text array containing the command line arguments.
79 % o argv: A text array containing the command line arguments.
81 % o exception: return any errors or warnings in this structure.
84 #if defined(MAGICKCORE_MODULES_SUPPORT)
85 MagickExport MagickBooleanType InvokeStaticImageFilter(const char *tag,
86 Image **image,const int argc,const char **argv,ExceptionInfo *exception)
91 assert(image != (Image **) NULL);
92 assert((*image)->signature == MagickCoreSignature);
93 if ((*image)->debug != MagickFalse)
94 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",(*image)->filename);
95 rights=ReadPolicyRights;
96 if (IsRightsAuthorized(FilterPolicyDomain,rights,tag) == MagickFalse)
99 (void) ThrowMagickException(exception,GetMagickModule(),PolicyError,
100 "NotAuthorized","`%s'",tag);
103 #if defined(MAGICKCORE_BUILD_MODULES)
111 analyzeImage(Image **,const int,char **,ExceptionInfo *);
116 image_filter=(ImageFilterHandler *) NULL;
117 if (LocaleCompare("analyze",tag) == 0)
118 image_filter=(ImageFilterHandler *) analyzeImage;
119 if (image_filter == (ImageFilterHandler *) NULL)
120 (void) ThrowMagickException(exception,GetMagickModule(),ModuleError,
121 "UnableToLoadModule","`%s'",tag);
127 if ((*image)->debug != MagickFalse)
128 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
129 "Invoking \"%s\" static image filter",tag);
130 signature=image_filter(image,argc,argv,exception);
131 if ((*image)->debug != MagickFalse)
132 (void) LogMagickEvent(CoderEvent,GetMagickModule(),"\"%s\" completes",
134 if (signature != MagickImageFilterSignature)
136 (void) ThrowMagickException(exception,GetMagickModule(),ModuleError,
137 "ImageFilterSignatureMismatch","'%s': %8lx != %8lx",tag,
138 (unsigned long) signature,(unsigned long)
139 MagickImageFilterSignature);
150 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 % R e g i s t e r S t a t i c M o d u l e s %
158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160 % (void) RegisterStaticModules() statically registers all the available module
163 % The format of the RegisterStaticModules method is:
165 % (void) RegisterStaticModules(void)
168 MagickExport void RegisterStaticModules(void)
170 #if !defined(MAGICKCORE_BUILD_MODULES)
171 (void) RegisterAAIImage();
172 (void) RegisterARTImage();
173 (void) RegisterAVSImage();
174 (void) RegisterBGRImage();
175 (void) RegisterBMPImage();
176 (void) RegisterBRAILLEImage();
177 (void) RegisterCALSImage();
178 (void) RegisterCAPTIONImage();
179 (void) RegisterCINImage();
180 (void) RegisterCIPImage();
181 (void) RegisterCLIPImage();
182 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
183 (void) RegisterCLIPBOARDImage();
185 (void) RegisterCMYKImage();
186 (void) RegisterCUTImage();
187 (void) RegisterDCMImage();
188 (void) RegisterDDSImage();
189 (void) RegisterDEBUGImage();
190 (void) RegisterDIBImage();
191 #if defined(MAGICKCORE_DJVU_DELEGATE)
192 (void) RegisterDJVUImage();
194 (void) RegisterDNGImage();
195 #if defined(MAGICKCORE_DPS_DELEGATE)
196 (void) RegisterDPSImage();
198 (void) RegisterDPXImage();
199 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
200 (void) RegisterEMFImage();
202 #if defined(MAGICKCORE_TIFF_DELEGATE)
203 (void) RegisterEPTImage();
205 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
206 (void) RegisterEXRImage();
208 (void) RegisterFAXImage();
209 (void) RegisterFDImage();
210 (void) RegisterFITSImage();
211 #if defined(MAGICKCORE_FLIF_DELEGATE)
212 (void) RegisterFLIFImage();
214 #if defined(MAGICKCORE_FPX_DELEGATE)
215 (void) RegisterFPXImage();
217 (void) RegisterGIFImage();
218 (void) RegisterGRAYImage();
219 (void) RegisterGRADIENTImage();
220 (void) RegisterHALDImage();
221 (void) RegisterHDRImage();
222 #if defined(MAGICKCORE_HEIC_DELEGATE)
223 (void) RegisterHEICImage();
225 (void) RegisterHISTOGRAMImage();
226 (void) RegisterHRZImage();
227 (void) RegisterHTMLImage();
228 (void) RegisterICONImage();
229 (void) RegisterINFOImage();
230 (void) RegisterINLINEImage();
231 (void) RegisterIPLImage();
232 #if defined(MAGICKCORE_JBIG_DELEGATE)
233 (void) RegisterJBIGImage();
235 (void) RegisterJNXImage();
236 #if defined(MAGICKCORE_JPEG_DELEGATE)
237 (void) RegisterJPEGImage();
239 #if defined(MAGICKCORE_LIBOPENJP2_DELEGATE)
240 (void) RegisterJP2Image();
242 (void) RegisterJSONImage();
243 (void) RegisterLABELImage();
244 (void) RegisterMACImage();
245 (void) RegisterMAGICKImage();
246 (void) RegisterMAPImage();
247 (void) RegisterMATImage();
248 (void) RegisterMATTEImage();
249 (void) RegisterMASKImage();
250 (void) RegisterMETAImage();
251 (void) RegisterMIFFImage();
252 (void) RegisterMONOImage();
253 (void) RegisterMPCImage();
254 (void) RegisterMPEGImage();
255 (void) RegisterMPRImage();
256 (void) RegisterMSLImage();
257 (void) RegisterMTVImage();
258 (void) RegisterMVGImage();
259 (void) RegisterNULLImage();
260 (void) RegisterOTBImage();
261 (void) RegisterPALMImage();
262 (void) RegisterPANGOImage();
263 (void) RegisterPATTERNImage();
264 (void) RegisterPCDImage();
265 (void) RegisterPCLImage();
266 (void) RegisterPCXImage();
267 (void) RegisterPDBImage();
268 (void) RegisterPDFImage();
269 (void) RegisterPESImage();
270 (void) RegisterPGXImage();
271 (void) RegisterPICTImage();
272 (void) RegisterPIXImage();
273 (void) RegisterPLASMAImage();
274 #if defined(MAGICKCORE_PNG_DELEGATE)
275 (void) RegisterPNGImage();
277 (void) RegisterPNMImage();
278 (void) RegisterPSImage();
279 (void) RegisterPS2Image();
280 (void) RegisterPS3Image();
281 (void) RegisterPSDImage();
282 (void) RegisterPWPImage();
283 (void) RegisterRAWImage();
284 (void) RegisterRGBImage();
285 (void) RegisterRGFImage();
286 (void) RegisterRLAImage();
287 (void) RegisterRLEImage();
288 (void) RegisterSCRImage();
289 (void) RegisterSCREENSHOTImage();
290 (void) RegisterSCTImage();
291 (void) RegisterSFWImage();
292 (void) RegisterSGIImage();
293 (void) RegisterSIXELImage();
294 (void) RegisterSTEGANOImage();
295 (void) RegisterSUNImage();
296 (void) RegisterSVGImage();
297 (void) RegisterTGAImage();
298 (void) RegisterTHUMBNAILImage();
299 #if defined(MAGICKCORE_TIFF_DELEGATE)
300 (void) RegisterTIFFImage();
302 (void) RegisterTILEImage();
303 (void) RegisterTIMImage();
304 (void) RegisterTTFImage();
305 (void) RegisterTXTImage();
306 (void) RegisterUILImage();
307 (void) RegisterURLImage();
308 (void) RegisterUYVYImage();
309 (void) RegisterVICARImage();
310 (void) RegisterVIDImage();
311 (void) RegisterVIFFImage();
312 (void) RegisterVIPSImage();
313 (void) RegisterWBMPImage();
314 #if defined(MAGICKCORE_WEBP_DELEGATE)
315 (void) RegisterWEBPImage();
317 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
318 (void) RegisterWMFImage();
320 (void) RegisterWPGImage();
321 #if defined(MAGICKCORE_X11_DELEGATE)
322 (void) RegisterXImage();
324 (void) RegisterXBMImage();
325 (void) RegisterXCImage();
326 (void) RegisterXCFImage();
327 (void) RegisterXPMImage();
328 (void) RegisterXPSImage();
329 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
330 (void) RegisterXTRNImage();
332 #if defined(MAGICKCORE_X11_DELEGATE)
333 (void) RegisterXWDImage();
335 (void) RegisterYCBCRImage();
336 (void) RegisterYUVImage();
341 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
345 % U n r e g i s t e r S t a t i c M o d u l e s %
349 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
351 % UnregisterStaticModules() statically unregisters all the available module
354 % The format of the UnregisterStaticModules method is:
356 % UnregisterStaticModules(void)
359 MagickExport void UnregisterStaticModules(void)
361 #if !defined(MAGICKCORE_BUILD_MODULES)
362 UnregisterAAIImage();
363 UnregisterARTImage();
364 UnregisterAVSImage();
365 UnregisterBGRImage();
366 UnregisterBMPImage();
367 UnregisterBRAILLEImage();
368 UnregisterCALSImage();
369 UnregisterCAPTIONImage();
370 UnregisterCINImage();
371 UnregisterCIPImage();
372 UnregisterCLIPImage();
373 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
374 UnregisterCLIPBOARDImage();
376 UnregisterCMYKImage();
377 UnregisterCUTImage();
378 UnregisterDCMImage();
379 UnregisterDDSImage();
380 UnregisterDEBUGImage();
381 UnregisterDIBImage();
382 #if defined(MAGICKCORE_DJVU_DELEGATE)
383 UnregisterDJVUImage();
385 UnregisterDNGImage();
386 #if defined(MAGICKCORE_DPS_DELEGATE)
387 UnregisterDPSImage();
389 UnregisterDPXImage();
390 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
391 UnregisterEMFImage();
393 #if defined(MAGICKCORE_TIFF_DELEGATE)
394 UnregisterEPTImage();
396 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
397 UnregisterEXRImage();
399 UnregisterFAXImage();
401 UnregisterFITSImage();
402 #if defined(MAGICKCORE_FLIF_DELEGATE)
403 UnregisterFLIFImage();
405 #if defined(MAGICKCORE_FPX_DELEGATE)
406 UnregisterFPXImage();
408 UnregisterGIFImage();
409 UnregisterGRAYImage();
410 UnregisterGRADIENTImage();
411 UnregisterHALDImage();
412 UnregisterHDRImage();
413 #if defined(MAGICKCORE_HEIC_DELEGATE)
414 UnregisterHEICImage();
416 UnregisterHISTOGRAMImage();
417 UnregisterHRZImage();
418 UnregisterHTMLImage();
419 UnregisterICONImage();
420 UnregisterINFOImage();
421 UnregisterINLINEImage();
422 UnregisterIPLImage();
423 #if defined(MAGICKCORE_JBIG_DELEGATE)
424 UnregisterJBIGImage();
426 UnregisterJNXImage();
427 #if defined(MAGICKCORE_JPEG_DELEGATE)
428 UnregisterJPEGImage();
430 #if defined(MAGICKCORE_LIBOPENJP2_DELEGATE)
431 UnregisterJP2Image();
433 UnregisterJSONImage();
434 UnregisterLABELImage();
435 UnregisterMACImage();
436 UnregisterMAGICKImage();
437 UnregisterMAPImage();
438 UnregisterMASKImage();
439 UnregisterMATImage();
440 UnregisterMATTEImage();
441 UnregisterMETAImage();
442 UnregisterMIFFImage();
443 UnregisterMONOImage();
444 UnregisterMPCImage();
445 UnregisterMPEGImage();
446 UnregisterMPRImage();
447 UnregisterMSLImage();
448 UnregisterMTVImage();
449 UnregisterMVGImage();
450 UnregisterNULLImage();
451 UnregisterOTBImage();
452 UnregisterPALMImage();
453 UnregisterPANGOImage();
454 UnregisterPATTERNImage();
455 UnregisterPCDImage();
456 UnregisterPCLImage();
457 UnregisterPCXImage();
458 UnregisterPDBImage();
459 UnregisterPDFImage();
460 UnregisterPESImage();
461 UnregisterPGXImage();
462 UnregisterPICTImage();
463 UnregisterPIXImage();
464 UnregisterPLASMAImage();
465 #if defined(MAGICKCORE_PNG_DELEGATE)
466 UnregisterPNGImage();
468 UnregisterPNMImage();
470 UnregisterPS2Image();
471 UnregisterPS3Image();
472 UnregisterPSDImage();
473 UnregisterPWPImage();
474 UnregisterRAWImage();
475 UnregisterRGBImage();
476 UnregisterRGFImage();
477 UnregisterRLAImage();
478 UnregisterRLEImage();
479 UnregisterSCRImage();
480 UnregisterSCREENSHOTImage();
481 UnregisterSCTImage();
482 UnregisterSFWImage();
483 UnregisterSGIImage();
484 UnregisterSIXELImage();
485 UnregisterSTEGANOImage();
486 UnregisterSUNImage();
487 UnregisterSVGImage();
488 UnregisterTGAImage();
489 UnregisterTHUMBNAILImage();
490 #if defined(MAGICKCORE_TIFF_DELEGATE)
491 UnregisterTIFFImage();
493 UnregisterTILEImage();
494 UnregisterTIMImage();
495 UnregisterTTFImage();
496 UnregisterTXTImage();
497 UnregisterUILImage();
498 UnregisterURLImage();
499 UnregisterUYVYImage();
500 UnregisterVICARImage();
501 UnregisterVIDImage();
502 UnregisterVIFFImage();
503 UnregisterVIPSImage();
504 UnregisterWBMPImage();
505 #if defined(MAGICKCORE_WEBP_DELEGATE)
506 UnregisterWEBPImage();
508 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
509 UnregisterWMFImage();
511 UnregisterWPGImage();
512 #if defined(MAGICKCORE_X11_DELEGATE)
515 UnregisterXBMImage();
517 UnregisterXCFImage();
518 UnregisterXPMImage();
519 UnregisterXPSImage();
520 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
521 UnregisterXTRNImage();
523 #if defined(MAGICKCORE_X11_DELEGATE)
524 UnregisterXWDImage();
526 UnregisterYCBCRImage();
527 UnregisterYUVImage();