2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 % SSSSS TTTTT AAA TTTTT IIIII CCCC %
10 % SSSSS T A A T IIIII CCCC %
13 % MagickCore Static Methods %
20 % Copyright 1999-2011 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 % http://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 "magick/studio.h"
44 #include "magick/exception-private.h"
45 #include "magick/image.h"
46 #include "magick/module.h"
47 #include "magick/policy.h"
48 #include "magick/static.h"
49 #include "magick/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 == MagickSignature);
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) RegisterARTImage();
172 (void) RegisterAVSImage();
173 (void) RegisterBMPImage();
174 (void) RegisterCALSImage();
175 (void) RegisterCAPTIONImage();
176 (void) RegisterCINImage();
177 (void) RegisterCIPImage();
178 (void) RegisterCLIPImage();
179 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
180 (void) RegisterCLIPBOARDImage();
182 (void) RegisterCMYKImage();
183 (void) RegisterCUTImage();
184 (void) RegisterDCMImage();
185 (void) RegisterDDSImage();
186 (void) RegisterDEBUGImage();
187 (void) RegisterDIBImage();
188 #if defined(MAGICKCORE_DJVU_DELEGATE)
189 (void) RegisterDJVUImage();
191 (void) RegisterDNGImage();
192 #if defined(MAGICKCORE_DPS_DELEGATE)
193 (void) RegisterDPSImage();
195 (void) RegisterDPXImage();
196 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
197 (void) RegisterEMFImage();
199 #if defined(MAGICKCORE_TIFF_DELEGATE)
200 (void) RegisterEPTImage();
202 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
203 (void) RegisterEXRImage();
205 (void) RegisterFAXImage();
206 (void) RegisterFITSImage();
207 #if defined(MAGICKCORE_FPX_DELEGATE)
208 (void) RegisterFPXImage();
210 (void) RegisterGIFImage();
211 (void) RegisterGRAYImage();
212 (void) RegisterGRADIENTImage();
213 (void) RegisterHISTOGRAMImage();
214 (void) RegisterHRZImage();
215 (void) RegisterHTMLImage();
216 (void) RegisterICONImage();
217 (void) RegisterINFOImage();
218 (void) RegisterINLINEImage();
219 (void) RegisterIPLImage();
220 #if defined(MAGICKCORE_JBIG_DELEGATE)
221 (void) RegisterJBIGImage();
223 #if defined(MAGICKCORE_JPEG_DELEGATE)
224 (void) RegisterJPEGImage();
226 #if defined(MAGICKCORE_JP2_DELEGATE)
227 (void) RegisterJP2Image();
229 (void) RegisterLABELImage();
230 (void) RegisterMAGICKImage();
231 (void) RegisterMAPImage();
232 (void) RegisterMATImage();
233 (void) RegisterMATTEImage();
234 (void) RegisterMETAImage();
235 (void) RegisterMIFFImage();
236 (void) RegisterMONOImage();
237 (void) RegisterMPCImage();
238 (void) RegisterMPEGImage();
239 (void) RegisterMPRImage();
240 (void) RegisterMSLImage();
241 (void) RegisterMTVImage();
242 (void) RegisterMVGImage();
243 (void) RegisterNULLImage();
244 (void) RegisterOTBImage();
245 (void) RegisterPALMImage();
246 (void) RegisterPATTERNImage();
247 (void) RegisterPCDImage();
248 (void) RegisterPCLImage();
249 (void) RegisterPCXImage();
250 (void) RegisterPDBImage();
251 (void) RegisterPDFImage();
252 (void) RegisterPESImage();
253 (void) RegisterPICTImage();
254 (void) RegisterPIXImage();
255 (void) RegisterPLASMAImage();
256 #if defined(MAGICKCORE_PNG_DELEGATE)
257 (void) RegisterPNGImage();
259 (void) RegisterPNMImage();
260 (void) RegisterPREVIEWImage();
261 (void) RegisterPSImage();
262 (void) RegisterPS2Image();
263 (void) RegisterPS3Image();
264 (void) RegisterPSDImage();
265 (void) RegisterPWPImage();
266 (void) RegisterRAWImage();
267 (void) RegisterRGBImage();
268 (void) RegisterRLAImage();
269 (void) RegisterRLEImage();
270 (void) RegisterSCRImage();
271 (void) RegisterSCTImage();
272 (void) RegisterSFWImage();
273 (void) RegisterSGIImage();
274 (void) RegisterSTEGANOImage();
275 (void) RegisterSUNImage();
276 (void) RegisterSVGImage();
277 (void) RegisterTGAImage();
278 (void) RegisterTHUMBNAILImage();
279 #if defined(MAGICKCORE_TIFF_DELEGATE)
280 (void) RegisterTIFFImage();
282 (void) RegisterTILEImage();
283 (void) RegisterTIMImage();
284 (void) RegisterTTFImage();
285 (void) RegisterTXTImage();
286 (void) RegisterUILImage();
287 (void) RegisterURLImage();
288 (void) RegisterUYVYImage();
289 (void) RegisterVICARImage();
290 (void) RegisterVIDImage();
291 (void) RegisterVIFFImage();
292 (void) RegisterWBMPImage();
293 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
294 (void) RegisterWMFImage();
296 (void) RegisterWPGImage();
297 #if defined(MAGICKCORE_X11_DELEGATE)
298 (void) RegisterXImage();
300 (void) RegisterXBMImage();
301 (void) RegisterXCImage();
302 (void) RegisterXCFImage();
303 (void) RegisterXPMImage();
304 (void) RegisterXPSImage();
305 #if defined(_VISUALC_)
306 (void) RegisterXTRNImage();
308 #if defined(MAGICKCORE_X11_DELEGATE)
309 (void) RegisterXWDImage();
311 (void) RegisterYCBCRImage();
312 (void) RegisterYUVImage();
317 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
321 % U n r e g i s t e r S t a t i c M o d u l e s %
325 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
327 % UnregisterStaticModules() statically unregisters all the available module
330 % The format of the UnregisterStaticModules method is:
332 % UnregisterStaticModules(void)
335 MagickExport void UnregisterStaticModules(void)
337 #if !defined(MAGICKCORE_BUILD_MODULES)
338 UnregisterARTImage();
339 UnregisterAVSImage();
340 UnregisterBMPImage();
341 UnregisterBRAILLEImage();
342 UnregisterCALSImage();
343 UnregisterCAPTIONImage();
344 UnregisterCINImage();
345 UnregisterCIPImage();
346 UnregisterCLIPImage();
347 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
348 UnregisterCLIPBOARDImage();
350 UnregisterCMYKImage();
351 UnregisterCUTImage();
352 UnregisterDCMImage();
353 UnregisterDDSImage();
354 UnregisterDEBUGImage();
355 UnregisterDIBImage();
356 #if defined(MAGICKCORE_DJVU_DELEGATE)
357 UnregisterDJVUImage();
359 UnregisterDNGImage();
360 #if defined(MAGICKCORE_DPS_DELEGATE)
361 UnregisterDPSImage();
363 UnregisterDPXImage();
364 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
365 UnregisterEMFImage();
367 #if defined(MAGICKCORE_TIFF_DELEGATE)
368 UnregisterEPTImage();
370 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
371 UnregisterEXRImage();
373 UnregisterFAXImage();
374 UnregisterFITSImage();
375 #if defined(MAGICKCORE_FPX_DELEGATE)
376 UnregisterFPXImage();
378 UnregisterGIFImage();
379 UnregisterGRAYImage();
380 UnregisterGRADIENTImage();
381 UnregisterHISTOGRAMImage();
382 UnregisterHRZImage();
383 UnregisterHTMLImage();
384 UnregisterICONImage();
385 UnregisterINFOImage();
386 UnregisterINLINEImage();
387 UnregisterIPLImage();
388 #if defined(MAGICKCORE_JBIG_DELEGATE)
389 UnregisterJBIGImage();
391 #if defined(MAGICKCORE_JPEG_DELEGATE)
392 UnregisterJPEGImage();
394 #if defined(MAGICKCORE_JP2_DELEGATE)
395 UnregisterJP2Image();
397 UnregisterLABELImage();
398 UnregisterMAGICKImage();
399 UnregisterMAPImage();
400 UnregisterMATImage();
401 UnregisterMATTEImage();
402 UnregisterMETAImage();
403 UnregisterMIFFImage();
404 UnregisterMONOImage();
405 UnregisterMPCImage();
406 UnregisterMPEGImage();
407 UnregisterMPRImage();
408 UnregisterMSLImage();
409 UnregisterMTVImage();
410 UnregisterMVGImage();
411 UnregisterNULLImage();
412 UnregisterOTBImage();
413 UnregisterPALMImage();
414 UnregisterPATTERNImage();
415 UnregisterPCDImage();
416 UnregisterPCLImage();
417 UnregisterPCXImage();
418 UnregisterPDBImage();
419 UnregisterPDFImage();
420 UnregisterPESImage();
421 UnregisterPICTImage();
422 UnregisterPIXImage();
423 UnregisterPLASMAImage();
424 #if defined(MAGICKCORE_PNG_DELEGATE)
425 UnregisterPNGImage();
427 UnregisterPNMImage();
428 UnregisterPREVIEWImage();
430 UnregisterPS2Image();
431 UnregisterPS3Image();
432 UnregisterPSDImage();
433 UnregisterPWPImage();
434 UnregisterRAWImage();
435 UnregisterRGBImage();
436 UnregisterRLAImage();
437 UnregisterRLEImage();
438 UnregisterSCRImage();
439 UnregisterSCTImage();
440 UnregisterSFWImage();
441 UnregisterSGIImage();
442 UnregisterSTEGANOImage();
443 UnregisterSUNImage();
444 UnregisterSVGImage();
445 UnregisterTGAImage();
446 UnregisterTHUMBNAILImage();
447 #if defined(MAGICKCORE_TIFF_DELEGATE)
448 UnregisterTIFFImage();
450 UnregisterTILEImage();
451 UnregisterTIMImage();
452 UnregisterTTFImage();
453 UnregisterTXTImage();
454 UnregisterUILImage();
455 UnregisterURLImage();
456 UnregisterUYVYImage();
457 UnregisterVICARImage();
458 UnregisterVIDImage();
459 UnregisterVIFFImage();
460 UnregisterWBMPImage();
461 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
462 UnregisterWMFImage();
464 UnregisterWPGImage();
465 #if defined(MAGICKCORE_X11_DELEGATE)
468 UnregisterXBMImage();
470 UnregisterXCFImage();
471 UnregisterXPMImage();
472 UnregisterXPSImage();
473 #if defined(_VISUALC_)
474 UnregisterXTRNImage();
476 #if defined(MAGICKCORE_X11_DELEGATE)
477 UnregisterXWDImage();
479 UnregisterYCBCRImage();
480 UnregisterYUVImage();