|
MagickCore
6.7.5
|
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) RegisterFITSImage(); 00208 #if defined(MAGICKCORE_FPX_DELEGATE) 00209 (void) RegisterFPXImage(); 00210 #endif 00211 (void) RegisterGIFImage(); 00212 (void) RegisterGRAYImage(); 00213 (void) RegisterGRADIENTImage(); 00214 (void) RegisterHALDImage(); 00215 (void) RegisterHDRImage(); 00216 (void) RegisterHISTOGRAMImage(); 00217 (void) RegisterHRZImage(); 00218 (void) RegisterHTMLImage(); 00219 (void) RegisterICONImage(); 00220 (void) RegisterINFOImage(); 00221 (void) RegisterINLINEImage(); 00222 (void) RegisterIPLImage(); 00223 #if defined(MAGICKCORE_JBIG_DELEGATE) 00224 (void) RegisterJBIGImage(); 00225 #endif 00226 #if defined(MAGICKCORE_JPEG_DELEGATE) 00227 (void) RegisterJPEGImage(); 00228 #endif 00229 #if defined(MAGICKCORE_JP2_DELEGATE) 00230 (void) RegisterJP2Image(); 00231 #endif 00232 (void) RegisterLABELImage(); 00233 (void) RegisterMACImage(); 00234 (void) RegisterMAGICKImage(); 00235 (void) RegisterMAPImage(); 00236 (void) RegisterMATImage(); 00237 (void) RegisterMATTEImage(); 00238 (void) RegisterMETAImage(); 00239 (void) RegisterMIFFImage(); 00240 (void) RegisterMONOImage(); 00241 (void) RegisterMPCImage(); 00242 (void) RegisterMPEGImage(); 00243 (void) RegisterMPRImage(); 00244 (void) RegisterMSLImage(); 00245 (void) RegisterMTVImage(); 00246 (void) RegisterMVGImage(); 00247 (void) RegisterNULLImage(); 00248 (void) RegisterOTBImage(); 00249 (void) RegisterPALMImage(); 00250 (void) RegisterPATTERNImage(); 00251 (void) RegisterPCDImage(); 00252 (void) RegisterPCLImage(); 00253 (void) RegisterPCXImage(); 00254 (void) RegisterPDBImage(); 00255 (void) RegisterPDFImage(); 00256 (void) RegisterPESImage(); 00257 (void) RegisterPICTImage(); 00258 (void) RegisterPIXImage(); 00259 (void) RegisterPLASMAImage(); 00260 #if defined(MAGICKCORE_PNG_DELEGATE) 00261 (void) RegisterPNGImage(); 00262 #endif 00263 (void) RegisterPNMImage(); 00264 (void) RegisterPREVIEWImage(); 00265 (void) RegisterPSImage(); 00266 (void) RegisterPS2Image(); 00267 (void) RegisterPS3Image(); 00268 (void) RegisterPSDImage(); 00269 (void) RegisterPWPImage(); 00270 (void) RegisterRAWImage(); 00271 (void) RegisterRGBImage(); 00272 (void) RegisterRLAImage(); 00273 (void) RegisterRLEImage(); 00274 (void) RegisterSCRImage(); 00275 (void) RegisterSCTImage(); 00276 (void) RegisterSFWImage(); 00277 (void) RegisterSGIImage(); 00278 (void) RegisterSTEGANOImage(); 00279 (void) RegisterSUNImage(); 00280 (void) RegisterSVGImage(); 00281 (void) RegisterTGAImage(); 00282 (void) RegisterTHUMBNAILImage(); 00283 #if defined(MAGICKCORE_TIFF_DELEGATE) 00284 (void) RegisterTIFFImage(); 00285 #endif 00286 (void) RegisterTILEImage(); 00287 (void) RegisterTIMImage(); 00288 (void) RegisterTTFImage(); 00289 (void) RegisterTXTImage(); 00290 (void) RegisterUILImage(); 00291 (void) RegisterURLImage(); 00292 (void) RegisterUYVYImage(); 00293 (void) RegisterVICARImage(); 00294 (void) RegisterVIDImage(); 00295 (void) RegisterVIFFImage(); 00296 (void) RegisterWBMPImage(); 00297 #if defined(MAGICKCORE_WEBP_DELEGATE) 00298 (void) RegisterWEBPImage(); 00299 #endif 00300 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE) 00301 (void) RegisterWMFImage(); 00302 #endif 00303 (void) RegisterWPGImage(); 00304 #if defined(MAGICKCORE_X11_DELEGATE) 00305 (void) RegisterXImage(); 00306 #endif 00307 (void) RegisterXBMImage(); 00308 (void) RegisterXCImage(); 00309 (void) RegisterXCFImage(); 00310 (void) RegisterXPMImage(); 00311 (void) RegisterXPSImage(); 00312 #if defined(_VISUALC_) 00313 (void) RegisterXTRNImage(); 00314 #endif 00315 #if defined(MAGICKCORE_X11_DELEGATE) 00316 (void) RegisterXWDImage(); 00317 #endif 00318 (void) RegisterYCBCRImage(); 00319 (void) RegisterYUVImage(); 00320 #endif 00321 } 00322 00323 /* 00324 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00325 % % 00326 % % 00327 % % 00328 % U n r e g i s t e r S t a t i c M o d u l e s % 00329 % % 00330 % % 00331 % % 00332 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00333 % 00334 % UnregisterStaticModules() statically unregisters all the available module 00335 % handlers. 00336 % 00337 % The format of the UnregisterStaticModules method is: 00338 % 00339 % UnregisterStaticModules(void) 00340 % 00341 */ 00342 MagickExport void UnregisterStaticModules(void) 00343 { 00344 #if !defined(MAGICKCORE_BUILD_MODULES) 00345 UnregisterAAIImage(); 00346 UnregisterARTImage(); 00347 UnregisterAVSImage(); 00348 UnregisterBMPImage(); 00349 UnregisterBRAILLEImage(); 00350 UnregisterCALSImage(); 00351 UnregisterCAPTIONImage(); 00352 UnregisterCINImage(); 00353 UnregisterCIPImage(); 00354 UnregisterCLIPImage(); 00355 #if defined(MAGICKCORE_WINGDI32_DELEGATE) 00356 UnregisterCLIPBOARDImage(); 00357 #endif 00358 UnregisterCMYKImage(); 00359 UnregisterCUTImage(); 00360 UnregisterDCMImage(); 00361 UnregisterDDSImage(); 00362 UnregisterDEBUGImage(); 00363 UnregisterDIBImage(); 00364 #if defined(MAGICKCORE_DJVU_DELEGATE) 00365 UnregisterDJVUImage(); 00366 #endif 00367 UnregisterDNGImage(); 00368 #if defined(MAGICKCORE_DPS_DELEGATE) 00369 UnregisterDPSImage(); 00370 #endif 00371 UnregisterDPXImage(); 00372 #if defined(MAGICKCORE_WINGDI32_DELEGATE) 00373 UnregisterEMFImage(); 00374 #endif 00375 #if defined(MAGICKCORE_TIFF_DELEGATE) 00376 UnregisterEPTImage(); 00377 #endif 00378 #if defined(MAGICKCORE_OPENEXR_DELEGATE) 00379 UnregisterEXRImage(); 00380 #endif 00381 UnregisterFAXImage(); 00382 UnregisterFITSImage(); 00383 #if defined(MAGICKCORE_FPX_DELEGATE) 00384 UnregisterFPXImage(); 00385 #endif 00386 UnregisterGIFImage(); 00387 UnregisterGRAYImage(); 00388 UnregisterGRADIENTImage(); 00389 UnregisterHALDImage(); 00390 UnregisterHDRImage(); 00391 UnregisterHISTOGRAMImage(); 00392 UnregisterHRZImage(); 00393 UnregisterHTMLImage(); 00394 UnregisterICONImage(); 00395 UnregisterINFOImage(); 00396 UnregisterINLINEImage(); 00397 UnregisterIPLImage(); 00398 #if defined(MAGICKCORE_JBIG_DELEGATE) 00399 UnregisterJBIGImage(); 00400 #endif 00401 #if defined(MAGICKCORE_JPEG_DELEGATE) 00402 UnregisterJPEGImage(); 00403 #endif 00404 #if defined(MAGICKCORE_JP2_DELEGATE) 00405 UnregisterJP2Image(); 00406 #endif 00407 UnregisterLABELImage(); 00408 UnregisterMACImage(); 00409 UnregisterMAGICKImage(); 00410 UnregisterMAPImage(); 00411 UnregisterMATImage(); 00412 UnregisterMATTEImage(); 00413 UnregisterMETAImage(); 00414 UnregisterMIFFImage(); 00415 UnregisterMONOImage(); 00416 UnregisterMPCImage(); 00417 UnregisterMPEGImage(); 00418 UnregisterMPRImage(); 00419 UnregisterMSLImage(); 00420 UnregisterMTVImage(); 00421 UnregisterMVGImage(); 00422 UnregisterNULLImage(); 00423 UnregisterOTBImage(); 00424 UnregisterPALMImage(); 00425 UnregisterPATTERNImage(); 00426 UnregisterPCDImage(); 00427 UnregisterPCLImage(); 00428 UnregisterPCXImage(); 00429 UnregisterPDBImage(); 00430 UnregisterPDFImage(); 00431 UnregisterPESImage(); 00432 UnregisterPICTImage(); 00433 UnregisterPIXImage(); 00434 UnregisterPLASMAImage(); 00435 #if defined(MAGICKCORE_PNG_DELEGATE) 00436 UnregisterPNGImage(); 00437 #endif 00438 UnregisterPNMImage(); 00439 UnregisterPREVIEWImage(); 00440 UnregisterPSImage(); 00441 UnregisterPS2Image(); 00442 UnregisterPS3Image(); 00443 UnregisterPSDImage(); 00444 UnregisterPWPImage(); 00445 UnregisterRAWImage(); 00446 UnregisterRGBImage(); 00447 UnregisterRLAImage(); 00448 UnregisterRLEImage(); 00449 UnregisterSCRImage(); 00450 UnregisterSCTImage(); 00451 UnregisterSFWImage(); 00452 UnregisterSGIImage(); 00453 UnregisterSTEGANOImage(); 00454 UnregisterSUNImage(); 00455 UnregisterSVGImage(); 00456 UnregisterTGAImage(); 00457 UnregisterTHUMBNAILImage(); 00458 #if defined(MAGICKCORE_TIFF_DELEGATE) 00459 UnregisterTIFFImage(); 00460 #endif 00461 UnregisterTILEImage(); 00462 UnregisterTIMImage(); 00463 UnregisterTTFImage(); 00464 UnregisterTXTImage(); 00465 UnregisterUILImage(); 00466 UnregisterURLImage(); 00467 UnregisterUYVYImage(); 00468 UnregisterVICARImage(); 00469 UnregisterVIDImage(); 00470 UnregisterVIFFImage(); 00471 UnregisterWBMPImage(); 00472 #if defined(MAGICKCORE_WEBP_DELEGATE) 00473 UnregisterWEBPImage(); 00474 #endif 00475 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE) 00476 UnregisterWMFImage(); 00477 #endif 00478 UnregisterWPGImage(); 00479 #if defined(MAGICKCORE_X11_DELEGATE) 00480 UnregisterXImage(); 00481 #endif 00482 UnregisterXBMImage(); 00483 UnregisterXCImage(); 00484 UnregisterXCFImage(); 00485 UnregisterXPMImage(); 00486 UnregisterXPSImage(); 00487 #if defined(_VISUALC_) 00488 UnregisterXTRNImage(); 00489 #endif 00490 #if defined(MAGICKCORE_X11_DELEGATE) 00491 UnregisterXWDImage(); 00492 #endif 00493 UnregisterYCBCRImage(); 00494 UnregisterYUVImage(); 00495 #endif 00496 }