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 #include <stdarg.h>
00026 #include "magick/semaphore.h"
00027
00028 typedef enum
00029 {
00030 UndefinedFormatType,
00031 ImplicitFormatType,
00032 ExplicitFormatType
00033 } MagickFormatType;
00034
00035 typedef enum
00036 {
00037 NoThreadSupport = 0x0000,
00038 DecoderThreadSupport = 0x0001,
00039 EncoderThreadSupport = 0x0002
00040 } MagickThreadSupport;
00041
00042 typedef Image
00043 *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
00044
00045 typedef MagickBooleanType
00046 EncodeImageHandler(const ImageInfo *,Image *);
00047
00048 typedef MagickBooleanType
00049 IsImageFormatHandler(const unsigned char *,const size_t);
00050
00051 typedef struct _MagickInfo
00052 {
00053 char
00054 *name,
00055 *description,
00056 *version,
00057 *note,
00058 *module;
00059
00060 ImageInfo
00061 *image_info;
00062
00063 DecodeImageHandler
00064 *decoder;
00065
00066 EncodeImageHandler
00067 *encoder;
00068
00069 IsImageFormatHandler
00070 *magick;
00071
00072 void
00073 *client_data;
00074
00075 MagickBooleanType
00076 adjoin,
00077 raw,
00078 endian_support,
00079 blob_support,
00080 seekable_stream;
00081
00082 MagickFormatType
00083 format_type;
00084
00085 MagickStatusType
00086 thread_support;
00087
00088 MagickBooleanType
00089 stealth;
00090
00091 struct _MagickInfo
00092 *previous,
00093 *next;
00094
00095 size_t
00096 signature;
00097
00098 char
00099 *mime_type;
00100
00101 SemaphoreInfo
00102 *semaphore;
00103 } MagickInfo;
00104
00105 extern MagickExport char
00106 **GetMagickList(const char *,size_t *,ExceptionInfo *);
00107
00108 extern MagickExport const char
00109 *GetMagickDescription(const MagickInfo *),
00110 *GetMagickMimeType(const MagickInfo *);
00111
00112 extern MagickExport DecodeImageHandler
00113 *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
00114
00115 extern MagickExport EncodeImageHandler
00116 *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
00117
00118 extern MagickExport int
00119 GetMagickPrecision(void),
00120 SetMagickPrecision(const int);
00121
00122 extern MagickExport MagickBooleanType
00123 GetImageMagick(const unsigned char *,const size_t,char *),
00124 GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
00125 GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
00126 GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
00127 GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
00128 GetMagickSeekableStream(const MagickInfo *) magick_attribute((__pure__)),
00129 IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
00130 MagickComponentGenesis(void),
00131 UnregisterMagickInfo(const char *);
00132
00133 extern const MagickExport MagickInfo
00134 *GetMagickInfo(const char *,ExceptionInfo *),
00135 **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
00136
00137 extern MagickExport MagickInfo
00138 *RegisterMagickInfo(MagickInfo *),
00139 *SetMagickInfo(const char *);
00140
00141 extern MagickExport MagickStatusType
00142 GetMagickThreadSupport(const MagickInfo *);
00143
00144 extern MagickExport void
00145 MagickComponentTerminus(void),
00146 MagickCoreGenesis(const char *,const MagickBooleanType),
00147 MagickCoreTerminus(void);
00148
00149 #if defined(__cplusplus) || defined(c_plusplus)
00150 }
00151 #endif
00152
00153 #endif