|
|
/* |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
% SSSSS TTTTT AAA TTTTT IIIII CCCC % |
|
|
% SS T A A T I C % |
|
|
% SSS T AAAAA T I C % |
|
|
% SS T A A T I C % |
|
|
% SSSSS T A A T IIIII CCCC % |
|
|
% % |
|
|
% % |
|
|
% MagickCore Static Methods % |
|
|
% % |
|
|
% Software Design % |
|
|
% Cristy % |
|
|
% March 2000 % |
|
|
% % |
|
|
% % |
|
|
% Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization % |
|
|
% dedicated to making software imaging solutions freely available. % |
|
|
% % |
|
|
% You may not use this file except in compliance with the License. You may % |
|
|
% obtain a copy of the License at % |
|
|
% % |
|
|
% http://www.imagemagick.org/script/license.php % |
|
|
% % |
|
|
% Unless required by applicable law or agreed to in writing, software % |
|
|
% distributed under the License is distributed on an "AS IS" BASIS, % |
|
|
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % |
|
|
% See the License for the specific language governing permissions and % |
|
|
% limitations under the License. % |
|
|
% % |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% |
|
|
% |
|
|
% |
|
|
*/ |
|
|
|
|
|
/* |
|
|
Include declarations. |
|
|
*/ |
|
|
#include "MagickCore/studio.h" |
|
|
#include "MagickCore/exception-private.h" |
|
|
#include "MagickCore/image.h" |
|
|
#include "MagickCore/module.h" |
|
|
#include "MagickCore/policy.h" |
|
|
#include "MagickCore/static.h" |
|
|
#include "MagickCore/string_.h" |
|
|
|
|
|
/* |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
% I n v o k e S t a t i c I m a g e F i l t e r % |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% |
|
|
% InvokeStaticImageFilter() invokes a static image filter. |
|
|
% |
|
|
% The format of the InvokeStaticImageFilter method is: |
|
|
% |
|
|
% MagickBooleanType InvokeStaticImageFilter(const char *tag,Image **image, |
|
|
% const int argc,const char **argv) |
|
|
% |
|
|
% A description of each parameter follows: |
|
|
% |
|
|
% o tag: the module tag. |
|
|
% |
|
|
% o image: the image. |
|
|
% |
|
|
% o argc: the number of elements in the argument vector. |
|
|
% |
|
|
% o argv: A text array containing the command line arguments. |
|
|
% |
|
|
% o argv: A text array containing the command line arguments. |
|
|
% |
|
|
% o exception: return any errors or warnings in this structure. |
|
|
% |
|
|
*/ |
|
|
#if defined(MAGICKCORE_MODULES_SUPPORT) |
|
|
MagickExport MagickBooleanType InvokeStaticImageFilter(const char *tag, |
|
|
Image **image,const int argc,const char **argv,ExceptionInfo *exception) |
|
|
{ |
|
|
PolicyRights |
|
|
rights; |
|
|
|
|
|
assert(image != (Image **) NULL); |
|
|
assert((*image)->signature == MagickCoreSignature); |
|
|
if ((*image)->debug != MagickFalse) |
|
|
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",(*image)->filename); |
|
|
rights=ReadPolicyRights; |
|
|
if (IsRightsAuthorized(FilterPolicyDomain,rights,tag) == MagickFalse) |
|
|
{ |
|
|
errno=EPERM; |
|
|
(void) ThrowMagickException(exception,GetMagickModule(),PolicyError, |
|
|
"NotAuthorized","`%s'",tag); |
|
|
return(MagickFalse); |
|
|
} |
|
|
#if defined(MAGICKCORE_BUILD_MODULES) |
|
|
(void) tag; |
|
|
(void) argc; |
|
|
(void) argv; |
|
|
(void) exception; |
|
|
#else |
|
|
{ |
|
|
extern size_t |
|
|
analyzeImage(Image **,const int,char **,ExceptionInfo *); |
|
|
|
|
|
ImageFilterHandler |
|
|
*image_filter; |
|
|
|
|
|
image_filter=(ImageFilterHandler *) NULL; |
|
|
if (LocaleCompare("analyze",tag) == 0) |
|
|
image_filter=(ImageFilterHandler *) analyzeImage; |
|
|
if (image_filter == (ImageFilterHandler *) NULL) |
|
|
(void) ThrowMagickException(exception,GetMagickModule(),ModuleError, |
|
|
"UnableToLoadModule","`%s'",tag); |
|
|
else |
|
|
{ |
|
|
size_t |
|
|
signature; |
|
|
|
|
|
if ((*image)->debug != MagickFalse) |
|
|
(void) LogMagickEvent(CoderEvent,GetMagickModule(), |
|
|
"Invoking \"%s\" static image filter",tag); |
|
|
signature=image_filter(image,argc,argv,exception); |
|
|
if ((*image)->debug != MagickFalse) |
|
|
(void) LogMagickEvent(CoderEvent,GetMagickModule(),"\"%s\" completes", |
|
|
tag); |
|
|
if (signature != MagickImageFilterSignature) |
|
|
{ |
|
|
(void) ThrowMagickException(exception,GetMagickModule(),ModuleError, |
|
|
"ImageFilterSignatureMismatch","'%s': %8lx != %8lx",tag, |
|
|
(unsigned long) signature,(unsigned long) |
|
|
MagickImageFilterSignature); |
|
|
return(MagickFalse); |
|
|
} |
|
|
} |
|
|
} |
|
|
#endif |
|
|
return(MagickTrue); |
|
|
} |
|
|
#endif |
|
|
|
|
|
/* |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
% R e g i s t e r S t a t i c M o d u l e s % |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% |
|
|
% (void) RegisterStaticModules() statically registers all the available module |
|
|
% handlers. |
|
|
% |
|
|
% The format of the RegisterStaticModules method is: |
|
|
% |
|
|
% (void) RegisterStaticModules(void) |
|
|
% |
|
|
*/ |
|
|
MagickExport void RegisterStaticModules(void) |
|
|
{ |
|
|
#if !defined(MAGICKCORE_BUILD_MODULES) |
|
|
(void) RegisterAAIImage(); |
|
|
(void) RegisterARTImage(); |
|
|
(void) RegisterAVSImage(); |
|
|
(void) RegisterBGRImage(); |
|
|
(void) RegisterBMPImage(); |
|
|
(void) RegisterBRAILLEImage(); |
|
|
(void) RegisterCALSImage(); |
|
|
(void) RegisterCAPTIONImage(); |
|
|
(void) RegisterCINImage(); |
|
|
(void) RegisterCIPImage(); |
|
|
(void) RegisterCLIPImage(); |
|
|
#if defined(MAGICKCORE_WINGDI32_DELEGATE) |
|
|
(void) RegisterCLIPBOARDImage(); |
|
|
#endif |
|
|
(void) RegisterCMYKImage(); |
|
|
(void) RegisterCUTImage(); |
|
|
(void) RegisterDCMImage(); |
|
|
(void) RegisterDDSImage(); |
|
|
(void) RegisterDEBUGImage(); |
|
|
(void) RegisterDIBImage(); |
|
|
#if defined(MAGICKCORE_DJVU_DELEGATE) |
|
|
(void) RegisterDJVUImage(); |
|
|
#endif |
|
|
(void) RegisterDNGImage(); |
|
|
#if defined(MAGICKCORE_DPS_DELEGATE) |
|
|
(void) RegisterDPSImage(); |
|
|
#endif |
|
|
(void) RegisterDPXImage(); |
|
|
#if defined(MAGICKCORE_WINGDI32_DELEGATE) |
|
|
(void) RegisterEMFImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_TIFF_DELEGATE) |
|
|
(void) RegisterEPTImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_OPENEXR_DELEGATE) |
|
|
(void) RegisterEXRImage(); |
|
|
#endif |
|
|
(void) RegisterFAXImage(); |
|
|
(void) RegisterFDImage(); |
|
|
(void) RegisterFITSImage(); |
|
|
#if defined(MAGICKCORE_FLIF_DELEGATE) |
|
|
(void) RegisterFLIFImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_FPX_DELEGATE) |
|
|
(void) RegisterFPXImage(); |
|
|
#endif |
|
|
(void) RegisterGIFImage(); |
|
|
(void) RegisterGRAYImage(); |
|
|
(void) RegisterGRADIENTImage(); |
|
|
(void) RegisterHALDImage(); |
|
|
(void) RegisterHDRImage(); |
|
|
(void) RegisterHISTOGRAMImage(); |
|
|
(void) RegisterHRZImage(); |
|
|
(void) RegisterHTMLImage(); |
|
|
(void) RegisterICONImage(); |
|
|
(void) RegisterINFOImage(); |
|
|
(void) RegisterINLINEImage(); |
|
|
(void) RegisterIPLImage(); |
|
|
#if defined(MAGICKCORE_JBIG_DELEGATE) |
|
|
(void) RegisterJBIGImage(); |
|
|
#endif |
|
|
(void) RegisterJNXImage(); |
|
|
#if defined(MAGICKCORE_JPEG_DELEGATE) |
|
|
(void) RegisterJPEGImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_LIBOPENJP2_DELEGATE) |
|
|
(void) RegisterJP2Image(); |
|
|
#endif |
|
|
(void) RegisterJSONImage(); |
|
|
(void) RegisterLABELImage(); |
|
|
(void) RegisterMACImage(); |
|
|
(void) RegisterMAGICKImage(); |
|
|
(void) RegisterMAPImage(); |
|
|
(void) RegisterMATImage(); |
|
|
(void) RegisterMATTEImage(); |
|
|
(void) RegisterMASKImage(); |
|
|
(void) RegisterMETAImage(); |
|
|
(void) RegisterMIFFImage(); |
|
|
(void) RegisterMONOImage(); |
|
|
(void) RegisterMPCImage(); |
|
|
(void) RegisterMPEGImage(); |
|
|
(void) RegisterMPRImage(); |
|
|
(void) RegisterMSLImage(); |
|
|
(void) RegisterMTVImage(); |
|
|
(void) RegisterMVGImage(); |
|
|
(void) RegisterNULLImage(); |
|
|
(void) RegisterOTBImage(); |
|
|
(void) RegisterPALMImage(); |
|
|
(void) RegisterPANGOImage(); |
|
|
(void) RegisterPATTERNImage(); |
|
|
(void) RegisterPCDImage(); |
|
|
(void) RegisterPCLImage(); |
|
|
(void) RegisterPCXImage(); |
|
|
(void) RegisterPDBImage(); |
|
|
(void) RegisterPDFImage(); |
|
|
(void) RegisterPESImage(); |
|
|
(void) RegisterPICTImage(); |
|
|
(void) RegisterPIXImage(); |
|
|
(void) RegisterPLASMAImage(); |
|
|
#if defined(MAGICKCORE_PNG_DELEGATE) |
|
|
(void) RegisterPNGImage(); |
|
|
#endif |
|
|
(void) RegisterPNMImage(); |
|
|
(void) RegisterPSImage(); |
|
|
(void) RegisterPS2Image(); |
|
|
(void) RegisterPS3Image(); |
|
|
(void) RegisterPSDImage(); |
|
|
(void) RegisterPWPImage(); |
|
|
(void) RegisterRAWImage(); |
|
|
(void) RegisterRGBImage(); |
|
|
(void) RegisterRGFImage(); |
|
|
(void) RegisterRLAImage(); |
|
|
(void) RegisterRLEImage(); |
|
|
(void) RegisterSCRImage(); |
|
|
(void) RegisterSCREENSHOTImage(); |
|
|
(void) RegisterSCTImage(); |
|
|
(void) RegisterSFWImage(); |
|
|
(void) RegisterSGIImage(); |
|
|
(void) RegisterSIXELImage(); |
|
|
(void) RegisterSTEGANOImage(); |
|
|
(void) RegisterSUNImage(); |
|
|
(void) RegisterSVGImage(); |
|
|
(void) RegisterTGAImage(); |
|
|
(void) RegisterTHUMBNAILImage(); |
|
|
#if defined(MAGICKCORE_TIFF_DELEGATE) |
|
|
(void) RegisterTIFFImage(); |
|
|
#endif |
|
|
(void) RegisterTILEImage(); |
|
|
(void) RegisterTIMImage(); |
|
|
(void) RegisterTTFImage(); |
|
|
(void) RegisterTXTImage(); |
|
|
(void) RegisterUILImage(); |
|
|
(void) RegisterURLImage(); |
|
|
(void) RegisterUYVYImage(); |
|
|
(void) RegisterVICARImage(); |
|
|
(void) RegisterVIDImage(); |
|
|
(void) RegisterVIFFImage(); |
|
|
(void) RegisterVIPSImage(); |
|
|
(void) RegisterWBMPImage(); |
|
|
#if defined(MAGICKCORE_WEBP_DELEGATE) |
|
|
(void) RegisterWEBPImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE) |
|
|
(void) RegisterWMFImage(); |
|
|
#endif |
|
|
(void) RegisterWPGImage(); |
|
|
#if defined(MAGICKCORE_X11_DELEGATE) |
|
|
(void) RegisterXImage(); |
|
|
#endif |
|
|
(void) RegisterXBMImage(); |
|
|
(void) RegisterXCImage(); |
|
|
(void) RegisterXCFImage(); |
|
|
(void) RegisterXPMImage(); |
|
|
(void) RegisterXPSImage(); |
|
|
#if defined(MAGICKCORE_WINDOWS_SUPPORT) |
|
|
(void) RegisterXTRNImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_X11_DELEGATE) |
|
|
(void) RegisterXWDImage(); |
|
|
#endif |
|
|
(void) RegisterYCBCRImage(); |
|
|
(void) RegisterYUVImage(); |
|
|
#endif |
|
|
} |
|
|
|
|
|
/* |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
% U n r e g i s t e r S t a t i c M o d u l e s % |
|
|
% % |
|
|
% % |
|
|
% % |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
|
% |
|
|
% UnregisterStaticModules() statically unregisters all the available module |
|
|
% handlers. |
|
|
% |
|
|
% The format of the UnregisterStaticModules method is: |
|
|
% |
|
|
% UnregisterStaticModules(void) |
|
|
% |
|
|
*/ |
|
|
MagickExport void UnregisterStaticModules(void) |
|
|
{ |
|
|
#if !defined(MAGICKCORE_BUILD_MODULES) |
|
|
UnregisterAAIImage(); |
|
|
UnregisterARTImage(); |
|
|
UnregisterAVSImage(); |
|
|
UnregisterBGRImage(); |
|
|
UnregisterBMPImage(); |
|
|
UnregisterBRAILLEImage(); |
|
|
UnregisterCALSImage(); |
|
|
UnregisterCAPTIONImage(); |
|
|
UnregisterCINImage(); |
|
|
UnregisterCIPImage(); |
|
|
UnregisterCLIPImage(); |
|
|
#if defined(MAGICKCORE_WINGDI32_DELEGATE) |
|
|
UnregisterCLIPBOARDImage(); |
|
|
#endif |
|
|
UnregisterCMYKImage(); |
|
|
UnregisterCUTImage(); |
|
|
UnregisterDCMImage(); |
|
|
UnregisterDDSImage(); |
|
|
UnregisterDEBUGImage(); |
|
|
UnregisterDIBImage(); |
|
|
#if defined(MAGICKCORE_DJVU_DELEGATE) |
|
|
UnregisterDJVUImage(); |
|
|
#endif |
|
|
UnregisterDNGImage(); |
|
|
#if defined(MAGICKCORE_DPS_DELEGATE) |
|
|
UnregisterDPSImage(); |
|
|
#endif |
|
|
UnregisterDPXImage(); |
|
|
#if defined(MAGICKCORE_WINGDI32_DELEGATE) |
|
|
UnregisterEMFImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_TIFF_DELEGATE) |
|
|
UnregisterEPTImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_OPENEXR_DELEGATE) |
|
|
UnregisterEXRImage(); |
|
|
#endif |
|
|
UnregisterFAXImage(); |
|
|
UnregisterFDImage(); |
|
|
UnregisterFITSImage(); |
|
|
#if defined(MAGICKCORE_FLIF_DELEGATE) |
|
|
UnregisterFLIFImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_FPX_DELEGATE) |
|
|
UnregisterFPXImage(); |
|
|
#endif |
|
|
UnregisterGIFImage(); |
|
|
UnregisterGRAYImage(); |
|
|
UnregisterGRADIENTImage(); |
|
|
UnregisterHALDImage(); |
|
|
UnregisterHDRImage(); |
|
|
UnregisterHISTOGRAMImage(); |
|
|
UnregisterHRZImage(); |
|
|
UnregisterHTMLImage(); |
|
|
UnregisterICONImage(); |
|
|
UnregisterINFOImage(); |
|
|
UnregisterINLINEImage(); |
|
|
UnregisterIPLImage(); |
|
|
#if defined(MAGICKCORE_JBIG_DELEGATE) |
|
|
UnregisterJBIGImage(); |
|
|
#endif |
|
|
UnregisterJNXImage(); |
|
|
#if defined(MAGICKCORE_JPEG_DELEGATE) |
|
|
UnregisterJPEGImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_LIBOPENJP2_DELEGATE) |
|
|
UnregisterJP2Image(); |
|
|
#endif |
|
|
UnregisterJSONImage(); |
|
|
UnregisterLABELImage(); |
|
|
UnregisterMACImage(); |
|
|
UnregisterMAGICKImage(); |
|
|
UnregisterMAPImage(); |
|
|
UnregisterMASKImage(); |
|
|
UnregisterMATImage(); |
|
|
UnregisterMATTEImage(); |
|
|
UnregisterMETAImage(); |
|
|
UnregisterMIFFImage(); |
|
|
UnregisterMONOImage(); |
|
|
UnregisterMPCImage(); |
|
|
UnregisterMPEGImage(); |
|
|
UnregisterMPRImage(); |
|
|
UnregisterMSLImage(); |
|
|
UnregisterMTVImage(); |
|
|
UnregisterMVGImage(); |
|
|
UnregisterNULLImage(); |
|
|
UnregisterOTBImage(); |
|
|
UnregisterPALMImage(); |
|
|
UnregisterPANGOImage(); |
|
|
UnregisterPATTERNImage(); |
|
|
UnregisterPCDImage(); |
|
|
UnregisterPCLImage(); |
|
|
UnregisterPCXImage(); |
|
|
UnregisterPDBImage(); |
|
|
UnregisterPDFImage(); |
|
|
UnregisterPESImage(); |
|
|
UnregisterPICTImage(); |
|
|
UnregisterPIXImage(); |
|
|
UnregisterPLASMAImage(); |
|
|
#if defined(MAGICKCORE_PNG_DELEGATE) |
|
|
UnregisterPNGImage(); |
|
|
#endif |
|
|
UnregisterPNMImage(); |
|
|
UnregisterPSImage(); |
|
|
UnregisterPS2Image(); |
|
|
UnregisterPS3Image(); |
|
|
UnregisterPSDImage(); |
|
|
UnregisterPWPImage(); |
|
|
UnregisterRAWImage(); |
|
|
UnregisterRGBImage(); |
|
|
UnregisterRGFImage(); |
|
|
UnregisterRLAImage(); |
|
|
UnregisterRLEImage(); |
|
|
UnregisterSCRImage(); |
|
|
UnregisterSCREENSHOTImage(); |
|
|
UnregisterSCTImage(); |
|
|
UnregisterSFWImage(); |
|
|
UnregisterSGIImage(); |
|
|
UnregisterSIXELImage(); |
|
|
UnregisterSTEGANOImage(); |
|
|
UnregisterSUNImage(); |
|
|
UnregisterSVGImage(); |
|
|
UnregisterTGAImage(); |
|
|
UnregisterTHUMBNAILImage(); |
|
|
#if defined(MAGICKCORE_TIFF_DELEGATE) |
|
|
UnregisterTIFFImage(); |
|
|
#endif |
|
|
UnregisterTILEImage(); |
|
|
UnregisterTIMImage(); |
|
|
UnregisterTTFImage(); |
|
|
UnregisterTXTImage(); |
|
|
UnregisterUILImage(); |
|
|
UnregisterURLImage(); |
|
|
UnregisterUYVYImage(); |
|
|
UnregisterVICARImage(); |
|
|
UnregisterVIDImage(); |
|
|
UnregisterVIFFImage(); |
|
|
UnregisterVIPSImage(); |
|
|
UnregisterWBMPImage(); |
|
|
#if defined(MAGICKCORE_WEBP_DELEGATE) |
|
|
UnregisterWEBPImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_WMF_DELEGATE) || defined(MAGICKCORE_WMFLITE_DELEGATE) |
|
|
UnregisterWMFImage(); |
|
|
#endif |
|
|
UnregisterWPGImage(); |
|
|
#if defined(MAGICKCORE_X11_DELEGATE) |
|
|
UnregisterXImage(); |
|
|
#endif |
|
|
UnregisterXBMImage(); |
|
|
UnregisterXCImage(); |
|
|
UnregisterXCFImage(); |
|
|
UnregisterXPMImage(); |
|
|
UnregisterXPSImage(); |
|
|
#if defined(MAGICKCORE_WINDOWS_SUPPORT) |
|
|
UnregisterXTRNImage(); |
|
|
#endif |
|
|
#if defined(MAGICKCORE_X11_DELEGATE) |
|
|
UnregisterXWDImage(); |
|
|
#endif |
|
|
UnregisterYCBCRImage(); |
|
|
UnregisterYUVImage(); |
|
|
#endif |
|
|
}
|
|
|
|