|
MagickCore
6.7.7
|
00001 /* 00002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00003 % % 00004 % % 00005 % % 00006 % SSSSS TTTTT AAA TTTTT IIIII CCCC % 00007 % SS T A A T I C % 00008 % SSS T AAAAA T I C % 00009 % SS T A A T I C % 00010 % SSSSS T A A T IIIII CCCC % 00011 % % 00012 % % 00013 % MagickCore Static Methods % 00014 % % 00015 % Software Design % 00016 % John Cristy % 00017 % March 2000 % 00018 % % 00019 % % 00020 % Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization % 00021 % dedicated to making software imaging solutions freely available. % 00022 % % 00023 % You may not use this file except in compliance with the License. You may % 00024 % obtain a copy of the License at % 00025 % % 00026 % http://www.imagemagick.org/script/license.php % 00027 % % 00028 % Unless required by applicable law or agreed to in writing, software % 00029 % distributed under the License is distributed on an "AS IS" BASIS, % 00030 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % 00031 % See the License for the specific language governing permissions and % 00032 % limitations under the License. % 00033 % % 00034 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00035 % 00036 % 00037 % 00038 */ 00039 00040 /* 00041 Include declarations. 00042 */ 00043 #include "MagickCore/studio.h" 00044 #include "MagickCore/exception-private.h" 00045 #include "MagickCore/image.h" 00046 #include "MagickCore/module.h" 00047 #include "MagickCore/policy.h" 00048 #include "MagickCore/static.h" 00049 #include "MagickCore/string_.h" 00050 00051 /* 00052 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00053 % % 00054 % % 00055 % % 00056 % I n v o k e S t a t i c I m a g e F i l t e r % 00057 % % 00058 % % 00059 % % 00060 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00061 % 00062 % InvokeStaticImageFilter() invokes a static image filter. 00063 % 00064 % The format of the InvokeStaticImageFilter method is: 00065 % 00066 % MagickBooleanType InvokeStaticImageFilter(const char *tag,Image **image, 00067 % const int argc,const char **argv) 00068 % 00069 % A description of each parameter follows: 00070 % 00071 % o tag: the module tag. 00072 % 00073 % o image: the image. 00074 % 00075 % o argc: the number of elements in the argument vector. 00076 % 00077 % o argv: A text array containing the command line arguments. 00078 % 00079 % o argv: A text array containing the command line arguments. 00080 % 00081 % o exception: return any errors or warnings in this structure. 00082 % 00083 */ 00084 #if defined(MAGICKCORE_MODULES_SUPPORT) 00085 MagickExport MagickBooleanType InvokeStaticImageFilter(const char *tag, 00086 Image **image,const int argc,const char **argv,ExceptionInfo *exception) 00087 { 00088 PolicyRights 00089 rights; 00090 00091 assert(image != (Image **) NULL); 00092 assert((*image)->signature == MagickSignature); 00093 if ((*image)->debug != MagickFalse) 00094 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",(*image)->filename); 00095 rights=ReadPolicyRights; 00096 if (IsRightsAuthorized(FilterPolicyDomain,rights,tag) == MagickFalse) 00097 { 00098 errno=EPERM; 00099 (void) ThrowMagickException(exception,GetMagickModule(),PolicyError, 00100 "NotAuthorized","'%s'",tag); 00101 return(MagickFalse); 00102 } 00103 #if defined(MAGICKCORE_BUILD_MODULES) 00104 (void) tag; 00105 (void) argc; 00106 (void) argv; 00107 (void) exception; 00108 #else 00109 { 00110 extern size_t 00111 analyzeImage(Image **,const int,char **,ExceptionInfo *); 00112 00113 ImageFilterHandler 00114 *image_filter; 00115 00116 image_filter=(ImageFilterHandler *) NULL; 00117 if (LocaleCompare("analyze",tag) == 0) 00118 image_filter=(ImageFilterHandler *) analyzeImage; 00119 if (image_filter == (ImageFilterHandler *) NULL) 00120 (void) ThrowMagickException(exception,GetMagickModule(),ModuleError, 00121 "UnableToLoadModule","'%s'",tag); 00122 else 00123 { 00124 size_t 00125 signature; 00126 00127 if ((*image)->debug != MagickFalse) 00128 (void) LogMagickEvent(CoderEvent,GetMagickModule(), 00129 "Invoking \"%s\" static image filter",tag); 00130 signature=image_filter(image,argc,argv,exception); 00131 if ((*image)->debug != MagickFalse) 00132 (void) LogMagickEvent(CoderEvent,GetMagickModule(),"\"%s\" completes", 00133 tag); 00134 if (signature != MagickImageFilterSignature) 00135 { 00136 (void) ThrowMagickException(exception,GetMagickModule(),ModuleError, 00137 "ImageFilterSignatureMismatch","'%s': %8lx != %8lx",tag, 00138 (unsigned long) signature,(unsigned long) 00139 MagickImageFilterSignature); 00140 return(MagickFalse); 00141 } 00142 } 00143 } 00144 #endif 00145 return(MagickTrue); 00146 } 00147 #endif 00148 00149 /* 00150 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00151 % % 00152 % % 00153 % % 00154 % R e g i s t e r S t a t i c M o d u l e s % 00155 % % 00156 % % 00157 % % 00158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00159 % 00160 % (void) RegisterStaticModules() statically registers all the available module 00161 % handlers. 00162 % 00163 % The format of the RegisterStaticModules method is: 00164 % 00165 % (void) RegisterStaticModules(void) 00166 % 00167 */ 00168 MagickExport void RegisterStaticModules(void) 00169 { 00170 #if !defined(MAGICKCORE_BUILD_MODULES) 00171 (void) RegisterAAIImage(); 00172 (void) RegisterARTImage(); 00173 (void) RegisterAVSImage(); 00174 (void) RegisterBMPImage(); 00175 (void) RegisterCALSImage(); 00176 (void) RegisterCAPTIONImage(); 00177 (void) RegisterCINImage(); 00178 (void) RegisterCIPImage(); 00179 (void) RegisterCLIPImage(); 00180 #if defined(MAGICKCORE_WINGDI32_DELEGATE) 00181 (void) RegisterCLIPBOARDImage(); 00182 #endif 00183 (void) RegisterCMYKImage(); 00184 (void) RegisterCUTImage(); 00185 (void) RegisterDCMImage(); 00186 (void) RegisterDDSImage(); 00187 (void) RegisterDEBUGImage(); 00188 (void) RegisterDIBImage(); 00189 #if defined(MAGICKCORE_DJVU_DELEGATE) 00190 (void) RegisterDJVUImage(); 00191 #endif 00192 (void) RegisterDNGImage(); 00193 #if defined(MAGICKCORE_DPS_DELEGATE) 00194 (void) RegisterDPSImage(); 00195 #endif 00196 (void) RegisterDPXImage(); 00197 #if defined(MAGICKCORE_WINGDI32_DELEGATE) 00198 (void) RegisterEMFImage(); 00199 #endif 00200 #if defined(MAGICKCORE_TIFF_DELEGATE) 00201 (void) RegisterEPTImage(); 00202 #endif 00203 #if defined(MAGICKCORE_OPENEXR_DELEGATE) 00204 (void) RegisterEXRImage(); 00205 #endif 00206 (void) RegisterFAXImage(); 00207 (void) RegisterFDImage(); 00208 (void) RegisterFITSImage(); 00209 #if defined(MAGICKCORE_FPX_DELEGATE) 00210 (void) RegisterFPXImage(); 00211 #endif 00212 (void) RegisterGIFImage(); 00213 (void) RegisterGRAYImage(); 00214 (void) RegisterGRADIENTImage(); 00215 (void) RegisterHALDImage(); 00216 (void) RegisterHDRImage(); 00217 (void) RegisterHISTOGRAMImage(); 00218 (void) RegisterHRZImage(); 00219 (void) RegisterHTMLImage(); 00220 (void) RegisterICONImage(); 00221 (void) RegisterINFOImage(); 00222 (void) RegisterINLINEImage(); 00223 (void) RegisterIPLImage(); 00224 #if defined(MAGICKCORE_JBIG_DELEGATE) 00225 (void) RegisterJBIGImage(); 00226 #endif 00227 #if defined(MAGICKCORE_JPEG_DELEGATE) 00228 (void) RegisterJPEGImage(); 00229 #endif 00230 #if defined(MAGICKCORE_JP2_DELEGATE) 00231 (void) RegisterJP2Image(); 00232 #endif 00233 (void) RegisterLABELImage(); 00234 (void) RegisterMACImage(); 00235 (void) RegisterMAGICKImage(); 00236 (void) RegisterMAPImage(); 00237 (void) RegisterMATImage(); 00238 (void) RegisterMATTEImage(); 00239 (void) RegisterMETAImage(); 00240 (void) RegisterMIFFImage(); 00241 (void) RegisterMONOImage(); 00242 (void) RegisterMPCImage(); 00243 (void) RegisterMPEGImage(); 00244 (void) RegisterMPRImage(); 00245 (void) RegisterMSLImage(); 00246 (void) RegisterMTVImage(); 00247 (void) RegisterMVGImage(); 00248 (void) RegisterNULLImage(); 00249 (void) RegisterOTBImage(); 00250 (void) RegisterPALMImage(); 00251 (void) RegisterPANGOImage(); 00252 (void) RegisterPATTERNImage(); 00253 (void) RegisterPCDImage(); 00254 (void) RegisterPCLImage(); 00255 (void) RegisterPCXImage(); 00256 (void) RegisterPDBImage(); 00257 (void) RegisterPDFImage(); 00258 (void) RegisterPESImage(); 00259 (void) RegisterPICTImage(); 00260 (void) RegisterPIXImage(); 00261 (void) RegisterPLASMAImage(); 00262 #if defined(MAGICKCORE_PNG_DELEGATE) 00263 (void) RegisterPNGImage(); 00264 #endif 00265 (void) RegisterPNMImage(); 00266 (void) RegisterPREVIEWImage(); 00267 (void) RegisterPSImage(); 00268 (void) RegisterPS2Image(); 00269 (void) RegisterPS3Image(); 00270 (void) RegisterPSDImage(); 00271 (void) RegisterPWPImage(); 00272 (void) RegisterRAWImage(); 00273 (void) RegisterRGBImage(); 00274 (void) RegisterRLAImage(); 00275 (void) RegisterRLEImage(); 00276 (void) RegisterSCRImage(); 00277 (void) RegisterSCTImage(); 00278 (void) RegisterSFWImage(); 00279 (void) RegisterSGIImage(); 00280 (void) RegisterSTEGANOImage(); 00281 (void) RegisterSUNImage(); 00282 (void) RegisterSVGImage(); 00283 (void) RegisterTGAImage(); 00284 (void) RegisterTHUMBNAILImage(); 00285 #if defined(MAGICKCORE_TIFF_DELEGATE) 00286 (void) RegisterTIFFImage(); 00287 #endif 00288 (void) RegisterTILEImage(); 00289 (void) RegisterTIMImage(); 00290 (void) RegisterTTFImage(); 00291 (void) RegisterTXTImage(); 00292 (void) RegisterUILImage(); 00293 (void) RegisterURLImage(); 00294 (void) RegisterUYVYImage(); 00295 (void) RegisterVICARImage(); 00296 (void) RegisterVIDImage(); 00297 (void) RegisterVIFFImage(); 00298 (void) RegisterWBMPImage(); 00299 #if defined(MAGICKCORE_WEBP_DELEGATE) 00300 (void) RegisterWEBPImage(); 00301 #endif 00302 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE) 00303 (void) RegisterWMFImage(); 00304 #endif 00305 (void) RegisterWPGImage(); 00306 #if defined(MAGICKCORE_X11_DELEGATE) 00307 (void) RegisterXImage(); 00308 #endif 00309 (void) RegisterXBMImage(); 00310 (void) RegisterXCImage(); 00311 (void) RegisterXCFImage(); 00312 (void) RegisterXPMImage(); 00313 (void) RegisterXPSImage(); 00314 #if defined(_VISUALC_) 00315 (void) RegisterXTRNImage(); 00316 #endif 00317 #if defined(MAGICKCORE_X11_DELEGATE) 00318 (void) RegisterXWDImage(); 00319 #endif 00320 (void) RegisterYCBCRImage(); 00321 (void) RegisterYUVImage(); 00322 #endif 00323 } 00324 00325 /* 00326 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00327 % % 00328 % % 00329 % % 00330 % U n r e g i s t e r S t a t i c M o d u l e s % 00331 % % 00332 % % 00333 % % 00334 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00335 % 00336 % UnregisterStaticModules() statically unregisters all the available module 00337 % handlers. 00338 % 00339 % The format of the UnregisterStaticModules method is: 00340 % 00341 % UnregisterStaticModules(void) 00342 % 00343 */ 00344 MagickExport void UnregisterStaticModules(void) 00345 { 00346 #if !defined(MAGICKCORE_BUILD_MODULES) 00347 UnregisterAAIImage(); 00348 UnregisterARTImage(); 00349 UnregisterAVSImage(); 00350 UnregisterBMPImage(); 00351 UnregisterBRAILLEImage(); 00352 UnregisterCALSImage(); 00353 UnregisterCAPTIONImage(); 00354 UnregisterCINImage(); 00355 UnregisterCIPImage(); 00356 UnregisterCLIPImage(); 00357 #if defined(MAGICKCORE_WINGDI32_DELEGATE) 00358 UnregisterCLIPBOARDImage(); 00359 #endif 00360 UnregisterCMYKImage(); 00361 UnregisterCUTImage(); 00362 UnregisterDCMImage(); 00363 UnregisterDDSImage(); 00364 UnregisterDEBUGImage(); 00365 UnregisterDIBImage(); 00366 #if defined(MAGICKCORE_DJVU_DELEGATE) 00367 UnregisterDJVUImage(); 00368 #endif 00369 UnregisterDNGImage(); 00370 #if defined(MAGICKCORE_DPS_DELEGATE) 00371 UnregisterDPSImage(); 00372 #endif 00373 UnregisterDPXImage(); 00374 #if defined(MAGICKCORE_WINGDI32_DELEGATE) 00375 UnregisterEMFImage(); 00376 #endif 00377 #if defined(MAGICKCORE_TIFF_DELEGATE) 00378 UnregisterEPTImage(); 00379 #endif 00380 #if defined(MAGICKCORE_OPENEXR_DELEGATE) 00381 UnregisterEXRImage(); 00382 #endif 00383 UnregisterFAXImage(); 00384 UnregisterFDImage(); 00385 UnregisterFITSImage(); 00386 #if defined(MAGICKCORE_FPX_DELEGATE) 00387 UnregisterFPXImage(); 00388 #endif 00389 UnregisterGIFImage(); 00390 UnregisterGRAYImage(); 00391 UnregisterGRADIENTImage(); 00392 UnregisterHALDImage(); 00393 UnregisterHDRImage(); 00394 UnregisterHISTOGRAMImage(); 00395 UnregisterHRZImage(); 00396 UnregisterHTMLImage(); 00397 UnregisterICONImage(); 00398 UnregisterINFOImage(); 00399 UnregisterINLINEImage(); 00400 UnregisterIPLImage(); 00401 #if defined(MAGICKCORE_JBIG_DELEGATE) 00402 UnregisterJBIGImage(); 00403 #endif 00404 #if defined(MAGICKCORE_JPEG_DELEGATE) 00405 UnregisterJPEGImage(); 00406 #endif 00407 #if defined(MAGICKCORE_JP2_DELEGATE) 00408 UnregisterJP2Image(); 00409 #endif 00410 UnregisterLABELImage(); 00411 UnregisterMACImage(); 00412 UnregisterMAGICKImage(); 00413 UnregisterMAPImage(); 00414 UnregisterMATImage(); 00415 UnregisterMATTEImage(); 00416 UnregisterMETAImage(); 00417 UnregisterMIFFImage(); 00418 UnregisterMONOImage(); 00419 UnregisterMPCImage(); 00420 UnregisterMPEGImage(); 00421 UnregisterMPRImage(); 00422 UnregisterMSLImage(); 00423 UnregisterMTVImage(); 00424 UnregisterMVGImage(); 00425 UnregisterNULLImage(); 00426 UnregisterOTBImage(); 00427 UnregisterPALMImage(); 00428 UnregisterPANGOImage(); 00429 UnregisterPATTERNImage(); 00430 UnregisterPCDImage(); 00431 UnregisterPCLImage(); 00432 UnregisterPCXImage(); 00433 UnregisterPDBImage(); 00434 UnregisterPDFImage(); 00435 UnregisterPESImage(); 00436 UnregisterPICTImage(); 00437 UnregisterPIXImage(); 00438 UnregisterPLASMAImage(); 00439 #if defined(MAGICKCORE_PNG_DELEGATE) 00440 UnregisterPNGImage(); 00441 #endif 00442 UnregisterPNMImage(); 00443 UnregisterPREVIEWImage(); 00444 UnregisterPSImage(); 00445 UnregisterPS2Image(); 00446 UnregisterPS3Image(); 00447 UnregisterPSDImage(); 00448 UnregisterPWPImage(); 00449 UnregisterRAWImage(); 00450 UnregisterRGBImage(); 00451 UnregisterRLAImage(); 00452 UnregisterRLEImage(); 00453 UnregisterSCRImage(); 00454 UnregisterSCTImage(); 00455 UnregisterSFWImage(); 00456 UnregisterSGIImage(); 00457 UnregisterSTEGANOImage(); 00458 UnregisterSUNImage(); 00459 UnregisterSVGImage(); 00460 UnregisterTGAImage(); 00461 UnregisterTHUMBNAILImage(); 00462 #if defined(MAGICKCORE_TIFF_DELEGATE) 00463 UnregisterTIFFImage(); 00464 #endif 00465 UnregisterTILEImage(); 00466 UnregisterTIMImage(); 00467 UnregisterTTFImage(); 00468 UnregisterTXTImage(); 00469 UnregisterUILImage(); 00470 UnregisterURLImage(); 00471 UnregisterUYVYImage(); 00472 UnregisterVICARImage(); 00473 UnregisterVIDImage(); 00474 UnregisterVIFFImage(); 00475 UnregisterWBMPImage(); 00476 #if defined(MAGICKCORE_WEBP_DELEGATE) 00477 UnregisterWEBPImage(); 00478 #endif 00479 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE) 00480 UnregisterWMFImage(); 00481 #endif 00482 UnregisterWPGImage(); 00483 #if defined(MAGICKCORE_X11_DELEGATE) 00484 UnregisterXImage(); 00485 #endif 00486 UnregisterXBMImage(); 00487 UnregisterXCImage(); 00488 UnregisterXCFImage(); 00489 UnregisterXPMImage(); 00490 UnregisterXPSImage(); 00491 #if defined(_VISUALC_) 00492 UnregisterXTRNImage(); 00493 #endif 00494 #if defined(MAGICKCORE_X11_DELEGATE) 00495 UnregisterXWDImage(); 00496 #endif 00497 UnregisterYCBCRImage(); 00498 UnregisterYUVImage(); 00499 #endif 00500 }