00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef _MAGICKCORE_MAGICK_H
00019 #define _MAGICKCORE_MAGICK_H
00020 
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024 
00025 typedef enum
00026 {
00027   NoThreadSupport = 0x0000,
00028   DecoderThreadSupport = 0x0001,
00029   EncoderThreadSupport = 0x0002
00030 } MagickThreadSupport;
00031 
00032 typedef Image
00033   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
00034 
00035 typedef MagickBooleanType
00036   EncodeImageHandler(const ImageInfo *,Image *);
00037 
00038 typedef MagickBooleanType
00039   IsImageFormatHandler(const unsigned char *,const size_t);
00040 
00041 typedef struct _MagickInfo
00042 {
00043   char
00044     *name,
00045     *description,
00046     *version,
00047     *note,
00048     *module;
00049 
00050   ImageInfo
00051     *image_info;
00052 
00053   DecodeImageHandler
00054     *decoder;
00055 
00056   EncodeImageHandler
00057     *encoder;
00058 
00059   IsImageFormatHandler
00060     *magick;
00061 
00062   void
00063     *client_data;
00064 
00065   MagickBooleanType
00066     adjoin,
00067     raw,
00068     endian_support,
00069     blob_support,
00070     seekable_stream;
00071 
00072   MagickStatusType
00073     thread_support;
00074 
00075   MagickBooleanType
00076     stealth;
00077 
00078   struct _MagickInfo
00079     *previous,
00080     *next;  
00081 
00082   unsigned long
00083     signature;
00084 } MagickInfo;
00085 
00086 extern MagickExport char
00087   **GetMagickList(const char *,unsigned long *,ExceptionInfo *);
00088 
00089 extern MagickExport const char
00090   *GetImageMagick(const unsigned char *,const size_t),
00091   *GetMagickDescription(const MagickInfo *);
00092 
00093 extern MagickExport DecodeImageHandler
00094   *GetImageDecoder(const MagickInfo *);
00095 
00096 extern MagickExport EncodeImageHandler
00097   *GetImageEncoder(const MagickInfo *);
00098 
00099 extern MagickExport MagickBooleanType
00100   GetMagickAdjoin(const MagickInfo *),
00101   GetMagickBlobSupport(const MagickInfo *),
00102   GetMagickEndianSupport(const MagickInfo *),
00103   GetMagickSeekableStream(const MagickInfo *),
00104   IsMagickInstantiated(void),
00105   UnregisterMagickInfo(const char *);
00106 
00107 extern const MagickExport MagickInfo
00108   *GetMagickInfo(const char *,ExceptionInfo *),
00109   **GetMagickInfoList(const char *,unsigned long *,ExceptionInfo *);
00110 
00111 extern MagickExport MagickInfo
00112   *RegisterMagickInfo(MagickInfo *),
00113   *SetMagickInfo(const char *);
00114 
00115 extern MagickExport MagickStatusType
00116   GetMagickThreadSupport(const MagickInfo *);
00117 
00118 extern MagickExport void
00119   DestroyMagickList(void),
00120   MagickCoreGenesis(const char *,const MagickBooleanType),
00121   MagickCoreTerminus(void);
00122 
00123 #if defined(__cplusplus) || defined(c_plusplus)
00124 }
00125 #endif
00126 
00127 #endif