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