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