2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 % SSSSS TTTTT AAA TTTTT IIIII CCCC %
10 % SSSSS T A A T IIIII CCCC %
13 % MagickCore Static Methods %
20 % Copyright 1999-2010 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)
124 if ((*image)->debug != MagickFalse)
125 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
126 "Invoking \"%s\" static image filter",tag);
127 signature=image_filter(image,argc,argv,exception);
128 if ((*image)->debug != MagickFalse)
129 (void) LogMagickEvent(CoderEvent,GetMagickModule(),"\"%s\" completes",
131 if (signature != MagickImageFilterSignature)
133 (void) ThrowMagickException(exception,GetMagickModule(),ModuleError,
134 "ImageFilterSignatureMismatch","`%s': %8lx != %8lx",tag,
135 (unsigned long) signature,(unsigned long)
136 MagickImageFilterSignature);
147 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
151 % R e g i s t e r S t a t i c M o d u l e s %
155 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157 % (void) RegisterStaticModules() statically registers all the available module
160 % The format of the RegisterStaticModules method is:
162 % (void) RegisterStaticModules(void)
165 MagickExport void RegisterStaticModules(void)
167 #if !defined(MAGICKCORE_BUILD_MODULES)
168 (void) RegisterARTImage();
169 (void) RegisterAVSImage();
170 (void) RegisterBMPImage();
171 (void) RegisterCALSImage();
172 (void) RegisterCAPTIONImage();
173 (void) RegisterCINImage();
174 (void) RegisterCIPImage();
175 (void) RegisterCLIPImage();
176 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
177 (void) RegisterCLIPBOARDImage();
179 (void) RegisterCMYKImage();
180 (void) RegisterCUTImage();
181 (void) RegisterDCMImage();
182 (void) RegisterDDSImage();
183 (void) RegisterDIBImage();
184 #if defined(MAGICKCORE_DJVU_DELEGATE)
185 (void) RegisterDJVUImage();
187 (void) RegisterDNGImage();
188 #if defined(MAGICKCORE_DPS_DELEGATE)
189 (void) RegisterDPSImage();
191 (void) RegisterDPXImage();
192 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
193 (void) RegisterEMFImage();
195 #if defined(MAGICKCORE_TIFF_DELEGATE)
196 (void) RegisterEPTImage();
198 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
199 (void) RegisterEXRImage();
201 (void) RegisterFAXImage();
202 (void) RegisterFITSImage();
203 #if defined(MAGICKCORE_FPX_DELEGATE)
204 (void) RegisterFPXImage();
206 (void) RegisterGIFImage();
207 (void) RegisterGRAYImage();
208 (void) RegisterGRADIENTImage();
209 (void) RegisterHISTOGRAMImage();
210 (void) RegisterHRZImage();
211 (void) RegisterHTMLImage();
212 (void) RegisterICONImage();
213 (void) RegisterINFOImage();
214 (void) RegisterINLINEImage();
215 (void) RegisterIPLImage();
216 #if defined(MAGICKCORE_JBIG_DELEGATE)
217 (void) RegisterJBIGImage();
219 #if defined(MAGICKCORE_JPEG_DELEGATE)
220 (void) RegisterJPEGImage();
222 #if defined(MAGICKCORE_JP2_DELEGATE)
223 (void) RegisterJP2Image();
225 (void) RegisterLABELImage();
226 (void) RegisterMAGICKImage();
227 (void) RegisterMAPImage();
228 (void) RegisterMATImage();
229 (void) RegisterMATTEImage();
230 (void) RegisterMETAImage();
231 (void) RegisterMIFFImage();
232 (void) RegisterMONOImage();
233 (void) RegisterMPCImage();
234 (void) RegisterMPEGImage();
235 (void) RegisterMPRImage();
236 (void) RegisterMSLImage();
237 (void) RegisterMTVImage();
238 (void) RegisterMVGImage();
239 (void) RegisterNULLImage();
240 (void) RegisterOTBImage();
241 (void) RegisterPALMImage();
242 (void) RegisterPATTERNImage();
243 (void) RegisterPCDImage();
244 (void) RegisterPCLImage();
245 (void) RegisterPCXImage();
246 (void) RegisterPDBImage();
247 (void) RegisterPDFImage();
248 (void) RegisterPESImage();
249 (void) RegisterPICTImage();
250 (void) RegisterPIXImage();
251 (void) RegisterPLASMAImage();
252 #if defined(MAGICKCORE_PNG_DELEGATE)
253 (void) RegisterPNGImage();
255 (void) RegisterPNMImage();
256 (void) RegisterPREVIEWImage();
257 (void) RegisterPSImage();
258 (void) RegisterPS2Image();
259 (void) RegisterPS3Image();
260 (void) RegisterPSDImage();
261 (void) RegisterPWPImage();
262 (void) RegisterRAWImage();
263 (void) RegisterRGBImage();
264 (void) RegisterRLAImage();
265 (void) RegisterRLEImage();
266 (void) RegisterSCRImage();
267 (void) RegisterSCTImage();
268 (void) RegisterSFWImage();
269 (void) RegisterSGIImage();
270 (void) RegisterSTEGANOImage();
271 (void) RegisterSUNImage();
272 (void) RegisterSVGImage();
273 (void) RegisterTGAImage();
274 (void) RegisterTHUMBNAILImage();
275 #if defined(MAGICKCORE_TIFF_DELEGATE)
276 (void) RegisterTIFFImage();
278 (void) RegisterTILEImage();
279 (void) RegisterTIMImage();
280 (void) RegisterTTFImage();
281 (void) RegisterTXTImage();
282 (void) RegisterUILImage();
283 (void) RegisterURLImage();
284 (void) RegisterUYVYImage();
285 (void) RegisterVICARImage();
286 (void) RegisterVIDImage();
287 (void) RegisterVIFFImage();
288 (void) RegisterWBMPImage();
289 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
290 (void) RegisterWMFImage();
292 (void) RegisterWPGImage();
293 #if defined(MAGICKCORE_X11_DELEGATE)
294 (void) RegisterXImage();
296 (void) RegisterXBMImage();
297 (void) RegisterXCImage();
298 (void) RegisterXCFImage();
299 (void) RegisterXPMImage();
300 (void) RegisterXPSImage();
301 #if defined(_VISUALC_)
302 (void) RegisterXTRNImage();
304 #if defined(MAGICKCORE_X11_DELEGATE)
305 (void) RegisterXWDImage();
307 (void) RegisterYCBCRImage();
308 (void) RegisterYUVImage();
313 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317 % U n r e g i s t e r S t a t i c M o d u l e s %
321 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
323 % UnregisterStaticModules() statically unregisters all the available module
326 % The format of the UnregisterStaticModules method is:
328 % UnregisterStaticModules(void)
331 MagickExport void UnregisterStaticModules(void)
333 #if !defined(MAGICKCORE_BUILD_MODULES)
334 UnregisterARTImage();
335 UnregisterAVSImage();
336 UnregisterBMPImage();
337 UnregisterBRAILLEImage();
338 UnregisterCALSImage();
339 UnregisterCAPTIONImage();
340 UnregisterCINImage();
341 UnregisterCIPImage();
342 UnregisterCLIPImage();
343 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
344 UnregisterCLIPBOARDImage();
346 UnregisterCMYKImage();
347 UnregisterCUTImage();
348 UnregisterDCMImage();
349 UnregisterDDSImage();
350 UnregisterDIBImage();
351 #if defined(MAGICKCORE_DJVU_DELEGATE)
352 UnregisterDJVUImage();
354 UnregisterDNGImage();
355 #if defined(MAGICKCORE_DPS_DELEGATE)
356 UnregisterDPSImage();
358 UnregisterDPXImage();
359 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
360 UnregisterEMFImage();
362 #if defined(MAGICKCORE_TIFF_DELEGATE)
363 UnregisterEPTImage();
365 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
366 UnregisterEXRImage();
368 UnregisterFAXImage();
369 UnregisterFITSImage();
370 #if defined(MAGICKCORE_FPX_DELEGATE)
371 UnregisterFPXImage();
373 UnregisterGIFImage();
374 UnregisterGRAYImage();
375 UnregisterGRADIENTImage();
376 UnregisterHISTOGRAMImage();
377 UnregisterHRZImage();
378 UnregisterHTMLImage();
379 UnregisterICONImage();
380 UnregisterINFOImage();
381 UnregisterINLINEImage();
382 UnregisterIPLImage();
383 #if defined(MAGICKCORE_JBIG_DELEGATE)
384 UnregisterJBIGImage();
386 #if defined(MAGICKCORE_JPEG_DELEGATE)
387 UnregisterJPEGImage();
389 #if defined(MAGICKCORE_JP2_DELEGATE)
390 UnregisterJP2Image();
392 UnregisterLABELImage();
393 UnregisterMAGICKImage();
394 UnregisterMAPImage();
395 UnregisterMATImage();
396 UnregisterMATTEImage();
397 UnregisterMETAImage();
398 UnregisterMIFFImage();
399 UnregisterMONOImage();
400 UnregisterMPCImage();
401 UnregisterMPEGImage();
402 UnregisterMPRImage();
403 UnregisterMSLImage();
404 UnregisterMTVImage();
405 UnregisterMVGImage();
406 UnregisterNULLImage();
407 UnregisterOTBImage();
408 UnregisterPALMImage();
409 UnregisterPATTERNImage();
410 UnregisterPCDImage();
411 UnregisterPCLImage();
412 UnregisterPCXImage();
413 UnregisterPDBImage();
414 UnregisterPDFImage();
415 UnregisterPESImage();
416 UnregisterPICTImage();
417 UnregisterPIXImage();
418 UnregisterPLASMAImage();
419 #if defined(MAGICKCORE_PNG_DELEGATE)
420 UnregisterPNGImage();
422 UnregisterPNMImage();
423 UnregisterPREVIEWImage();
425 UnregisterPS2Image();
426 UnregisterPS3Image();
427 UnregisterPSDImage();
428 UnregisterPWPImage();
429 UnregisterRAWImage();
430 UnregisterRGBImage();
431 UnregisterRLAImage();
432 UnregisterRLEImage();
433 UnregisterSCRImage();
434 UnregisterSCTImage();
435 UnregisterSFWImage();
436 UnregisterSGIImage();
437 UnregisterSTEGANOImage();
438 UnregisterSUNImage();
439 UnregisterSVGImage();
440 UnregisterTGAImage();
441 UnregisterTHUMBNAILImage();
442 #if defined(MAGICKCORE_TIFF_DELEGATE)
443 UnregisterTIFFImage();
445 UnregisterTILEImage();
446 UnregisterTIMImage();
447 UnregisterTTFImage();
448 UnregisterTXTImage();
449 UnregisterUILImage();
450 UnregisterURLImage();
451 UnregisterUYVYImage();
452 UnregisterVICARImage();
453 UnregisterVIDImage();
454 UnregisterVIFFImage();
455 UnregisterWBMPImage();
456 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
457 UnregisterWMFImage();
459 UnregisterWPGImage();
460 #if defined(MAGICKCORE_X11_DELEGATE)
463 UnregisterXBMImage();
465 UnregisterXCFImage();
466 UnregisterXPMImage();
467 UnregisterXPSImage();
468 #if defined(_VISUALC_)
469 UnregisterXTRNImage();
471 #if defined(MAGICKCORE_X11_DELEGATE)
472 UnregisterXWDImage();
474 UnregisterYCBCRImage();
475 UnregisterYUVImage();