static.c

Go to the documentation of this file.
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-2010 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 "magick/studio.h"
00044 #include "magick/exception-private.h"
00045 #include "magick/image.h"
00046 #include "magick/module.h"
00047 #include "magick/policy.h"
00048 #include "magick/static.h"
00049 #include "magick/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 unsigned long
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       {
00121         unsigned long
00122           signature;
00123 
00124         if ((*image)->debug != MagickFalse)
00125           (void) LogMagickEvent(CoderEvent,GetMagickModule(),
00126             "Invoking \"%s\" static image filter",tag);
00127         signature=image_filter(image,argc,argv,exception);
00128         if ((*image)->debug != MagickFalse)
00129           (void) LogMagickEvent(CoderEvent,GetMagickModule(),"\"%s\" completes",
00130             tag);
00131         if (signature != MagickImageFilterSignature)
00132           {
00133             (void) ThrowMagickException(exception,GetMagickModule(),ModuleError,
00134               "ImageFilterSignatureMismatch","`%s': %8lx != %8lx",tag,signature,
00135               MagickImageFilterSignature);
00136             return(MagickFalse);
00137           }
00138       }
00139   }
00140 #endif
00141   return(MagickTrue);
00142 }
00143 #endif
00144 
00145 /*
00146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00147 %                                                                             %
00148 %                                                                             %
00149 %                                                                             %
00150 %   R e g i s t e r S t a t i c M o d u l e s                                 %
00151 %                                                                             %
00152 %                                                                             %
00153 %                                                                             %
00154 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00155 %
00156 %  (void) RegisterStaticModules() statically registers all the available module
00157 %  handlers.
00158 %
00159 %  The format of the RegisterStaticModules method is:
00160 %
00161 %      (void) RegisterStaticModules(void)
00162 %
00163 */
00164 MagickExport void RegisterStaticModules(void)
00165 {
00166 #if !defined(MAGICKCORE_BUILD_MODULES)
00167   (void) RegisterARTImage();
00168   (void) RegisterAVSImage();
00169   (void) RegisterBMPImage();
00170   (void) RegisterCAPTIONImage();
00171   (void) RegisterCINImage();
00172   (void) RegisterCIPImage();
00173   (void) RegisterCLIPImage();
00174 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
00175   (void) RegisterCLIPBOARDImage();
00176 #endif
00177   (void) RegisterCMYKImage();
00178   (void) RegisterCUTImage();
00179   (void) RegisterDCMImage();
00180   (void) RegisterDDSImage();
00181   (void) RegisterDIBImage();
00182 #if defined(MAGICKCORE_DJVU_DELEGATE)
00183   (void) RegisterDJVUImage();
00184 #endif
00185   (void) RegisterDNGImage();
00186 #if defined(MAGICKCORE_DPS_DELEGATE)
00187   (void) RegisterDPSImage();
00188 #endif
00189   (void) RegisterDPXImage();
00190 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
00191   (void) RegisterEMFImage();
00192 #endif
00193 #if defined(MAGICKCORE_TIFF_DELEGATE)
00194   (void) RegisterEPTImage();
00195 #endif
00196 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
00197   (void) RegisterEXRImage();
00198 #endif
00199   (void) RegisterFAXImage();
00200   (void) RegisterFITSImage();
00201 #if defined(MAGICKCORE_FPX_DELEGATE)
00202   (void) RegisterFPXImage();
00203 #endif
00204   (void) RegisterGIFImage();
00205   (void) RegisterGRAYImage();
00206   (void) RegisterGRADIENTImage();
00207   (void) RegisterHISTOGRAMImage();
00208   (void) RegisterHRZImage();
00209   (void) RegisterHTMLImage();
00210   (void) RegisterICONImage();
00211   (void) RegisterINFOImage();
00212   (void) RegisterINLINEImage();
00213   (void) RegisterIPLImage();
00214 #if defined(MAGICKCORE_JBIG_DELEGATE)
00215   (void) RegisterJBIGImage();
00216 #endif
00217 #if defined(MAGICKCORE_JPEG_DELEGATE)
00218   (void) RegisterJPEGImage();
00219 #endif
00220 #if defined(MAGICKCORE_JP2_DELEGATE)
00221   (void) RegisterJP2Image();
00222 #endif
00223   (void) RegisterLABELImage();
00224   (void) RegisterMAGICKImage();
00225   (void) RegisterMAPImage();
00226   (void) RegisterMATImage();
00227   (void) RegisterMATTEImage();
00228   (void) RegisterMETAImage();
00229   (void) RegisterMIFFImage();
00230   (void) RegisterMONOImage();
00231   (void) RegisterMPCImage();
00232   (void) RegisterMPEGImage();
00233   (void) RegisterMPRImage();
00234   (void) RegisterMSLImage();
00235   (void) RegisterMTVImage();
00236   (void) RegisterMVGImage();
00237   (void) RegisterNULLImage();
00238   (void) RegisterOTBImage();
00239   (void) RegisterPALMImage();
00240   (void) RegisterPATTERNImage();
00241   (void) RegisterPCDImage();
00242   (void) RegisterPCLImage();
00243   (void) RegisterPCXImage();
00244   (void) RegisterPDBImage();
00245   (void) RegisterPDFImage();
00246   (void) RegisterPESImage();
00247   (void) RegisterPICTImage();
00248   (void) RegisterPIXImage();
00249   (void) RegisterPLASMAImage();
00250 #if defined(MAGICKCORE_PNG_DELEGATE)
00251   (void) RegisterPNGImage();
00252 #endif
00253   (void) RegisterPNMImage();
00254   (void) RegisterPREVIEWImage();
00255   (void) RegisterPSImage();
00256   (void) RegisterPS2Image();
00257   (void) RegisterPS3Image();
00258   (void) RegisterPSDImage();
00259   (void) RegisterPWPImage();
00260   (void) RegisterRAWImage();
00261   (void) RegisterRGBImage();
00262   (void) RegisterRLAImage();
00263   (void) RegisterRLEImage();
00264   (void) RegisterSCRImage();
00265   (void) RegisterSCTImage();
00266   (void) RegisterSFWImage();
00267   (void) RegisterSGIImage();
00268   (void) RegisterSTEGANOImage();
00269   (void) RegisterSUNImage();
00270   (void) RegisterSVGImage();
00271   (void) RegisterTGAImage();
00272   (void) RegisterTHUMBNAILImage();
00273 #if defined(MAGICKCORE_TIFF_DELEGATE)
00274   (void) RegisterTIFFImage();
00275 #endif
00276   (void) RegisterTILEImage();
00277   (void) RegisterTIMImage();
00278   (void) RegisterTTFImage();
00279   (void) RegisterTXTImage();
00280   (void) RegisterUILImage();
00281   (void) RegisterURLImage();
00282   (void) RegisterUYVYImage();
00283   (void) RegisterVICARImage();
00284   (void) RegisterVIDImage();
00285   (void) RegisterVIFFImage();
00286   (void) RegisterWBMPImage();
00287 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
00288   (void) RegisterWMFImage();
00289 #endif
00290   (void) RegisterWPGImage();
00291 #if defined(MAGICKCORE_X11_DELEGATE)
00292   (void) RegisterXImage();
00293 #endif
00294   (void) RegisterXBMImage();
00295   (void) RegisterXCImage();
00296   (void) RegisterXCFImage();
00297   (void) RegisterXPMImage();
00298   (void) RegisterXPSImage();
00299 #if defined(_VISUALC_)
00300   (void) RegisterXTRNImage();
00301 #endif
00302 #if defined(MAGICKCORE_X11_DELEGATE)
00303   (void) RegisterXWDImage();
00304 #endif
00305   (void) RegisterYCBCRImage();
00306   (void) RegisterYUVImage();
00307 #endif
00308 }
00309 
00310 /*
00311 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00312 %                                                                             %
00313 %                                                                             %
00314 %                                                                             %
00315 %   U n r e g i s t e r S t a t i c M o d u l e s                             %
00316 %                                                                             %
00317 %                                                                             %
00318 %                                                                             %
00319 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00320 %
00321 %  UnregisterStaticModules() statically unregisters all the available module
00322 %  handlers.
00323 %
00324 %  The format of the UnregisterStaticModules method is:
00325 %
00326 %      UnregisterStaticModules(void)
00327 %
00328 */
00329 MagickExport void UnregisterStaticModules(void)
00330 {
00331 #if !defined(MAGICKCORE_BUILD_MODULES)
00332   UnregisterARTImage();
00333   UnregisterAVSImage();
00334   UnregisterBMPImage();
00335   UnregisterBRAILLEImage();
00336   UnregisterCAPTIONImage();
00337   UnregisterCINImage();
00338   UnregisterCIPImage();
00339   UnregisterCLIPImage();
00340 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
00341   UnregisterCLIPBOARDImage();
00342 #endif
00343   UnregisterCMYKImage();
00344   UnregisterCUTImage();
00345   UnregisterDCMImage();
00346   UnregisterDDSImage();
00347   UnregisterDIBImage();
00348 #if defined(MAGICKCORE_DJVU_DELEGATE)
00349   UnregisterDJVUImage();
00350 #endif
00351   UnregisterDNGImage();
00352 #if defined(MAGICKCORE_DPS_DELEGATE)
00353   UnregisterDPSImage();
00354 #endif
00355   UnregisterDPXImage();
00356 #if defined(MAGICKCORE_WINGDI32_DELEGATE)
00357   UnregisterEMFImage();
00358 #endif
00359 #if defined(MAGICKCORE_TIFF_DELEGATE)
00360   UnregisterEPTImage();
00361 #endif
00362 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
00363   UnregisterEXRImage();
00364 #endif
00365   UnregisterFAXImage();
00366   UnregisterFITSImage();
00367 #if defined(MAGICKCORE_FPX_DELEGATE)
00368   UnregisterFPXImage();
00369 #endif
00370   UnregisterGIFImage();
00371   UnregisterGRAYImage();
00372   UnregisterGRADIENTImage();
00373   UnregisterHISTOGRAMImage();
00374   UnregisterHRZImage();
00375   UnregisterHTMLImage();
00376   UnregisterICONImage();
00377   UnregisterINFOImage();
00378   UnregisterINLINEImage();
00379   UnregisterIPLImage();
00380 #if defined(MAGICKCORE_JBIG_DELEGATE)
00381   UnregisterJBIGImage();
00382 #endif
00383 #if defined(MAGICKCORE_JPEG_DELEGATE)
00384   UnregisterJPEGImage();
00385 #endif
00386 #if defined(MAGICKCORE_JP2_DELEGATE)
00387   UnregisterJP2Image();
00388 #endif
00389   UnregisterLABELImage();
00390   UnregisterMAGICKImage();
00391   UnregisterMAPImage();
00392   UnregisterMATImage();
00393   UnregisterMATTEImage();
00394   UnregisterMETAImage();
00395   UnregisterMIFFImage();
00396   UnregisterMONOImage();
00397   UnregisterMPCImage();
00398   UnregisterMPEGImage();
00399   UnregisterMPRImage();
00400   UnregisterMSLImage();
00401   UnregisterMTVImage();
00402   UnregisterMVGImage();
00403   UnregisterNULLImage();
00404   UnregisterOTBImage();
00405   UnregisterPALMImage();
00406   UnregisterPATTERNImage();
00407   UnregisterPCDImage();
00408   UnregisterPCLImage();
00409   UnregisterPCXImage();
00410   UnregisterPDBImage();
00411   UnregisterPDFImage();
00412   UnregisterPESImage();
00413   UnregisterPICTImage();
00414   UnregisterPIXImage();
00415   UnregisterPLASMAImage();
00416 #if defined(MAGICKCORE_PNG_DELEGATE)
00417   UnregisterPNGImage();
00418 #endif
00419   UnregisterPNMImage();
00420   UnregisterPREVIEWImage();
00421   UnregisterPSImage();
00422   UnregisterPS2Image();
00423   UnregisterPS3Image();
00424   UnregisterPSDImage();
00425   UnregisterPWPImage();
00426   UnregisterRAWImage();
00427   UnregisterRGBImage();
00428   UnregisterRLAImage();
00429   UnregisterRLEImage();
00430   UnregisterSCRImage();
00431   UnregisterSCTImage();
00432   UnregisterSFWImage();
00433   UnregisterSGIImage();
00434   UnregisterSTEGANOImage();
00435   UnregisterSUNImage();
00436   UnregisterSVGImage();
00437   UnregisterTGAImage();
00438   UnregisterTHUMBNAILImage();
00439 #if defined(MAGICKCORE_TIFF_DELEGATE)
00440   UnregisterTIFFImage();
00441 #endif
00442   UnregisterTILEImage();
00443   UnregisterTIMImage();
00444   UnregisterTTFImage();
00445   UnregisterTXTImage();
00446   UnregisterUILImage();
00447   UnregisterURLImage();
00448   UnregisterUYVYImage();
00449   UnregisterVICARImage();
00450   UnregisterVIDImage();
00451   UnregisterVIFFImage();
00452   UnregisterWBMPImage();
00453 #if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE)
00454   UnregisterWMFImage();
00455 #endif
00456   UnregisterWPGImage();
00457 #if defined(MAGICKCORE_X11_DELEGATE)
00458   UnregisterXImage();
00459 #endif
00460   UnregisterXBMImage();
00461   UnregisterXCImage();
00462   UnregisterXCFImage();
00463   UnregisterXPMImage();
00464   UnregisterXPSImage();
00465 #if defined(_VISUALC_)
00466   UnregisterXTRNImage();
00467 #endif
00468 #if defined(MAGICKCORE_X11_DELEGATE)
00469   UnregisterXWDImage();
00470 #endif
00471   UnregisterYCBCRImage();
00472   UnregisterYUVImage();
00473 #endif
00474 }
Generated by  doxygen 1.6.2-20100208