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 "MagickCore/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 CoderNoFlag = 0x0000,
00044 CoderAdjoinFlag = 0x0001,
00045 CoderBlobSupportFlag = 0x0002,
00046 CoderDecoderThreadSupportFlag = 0x0004,
00047 CoderEncoderThreadSupportFlag = 0x0008,
00048 CoderEndianSupportFlag = 0x0010,
00049 CoderRawSupportFlag = 0x0020,
00050 CoderSeekableStreamFlag = 0x0040,
00051 CoderStealthFlag = 0x0080,
00052 CoderUseExtensionFlag = 0x0100,
00053 CoderDecoderSeekableStreamFlag = 0x0200,
00054 CoderEncoderSeekableStreamFlag = 0x0400,
00055
00056 } MagickInfoFlag;
00057
00058 typedef Image
00059 *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
00060
00061 typedef MagickBooleanType
00062 EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
00063
00064 typedef MagickBooleanType
00065 IsImageFormatHandler(const unsigned char *,const size_t);
00066
00067 typedef struct _MagickInfo
00068 {
00069 char
00070 *name,
00071 *description,
00072 *version,
00073 *mime_type,
00074 *note,
00075 *magick_module;
00076
00077 DecodeImageHandler
00078 *decoder;
00079
00080 EncodeImageHandler
00081 *encoder;
00082
00083 ImageInfo
00084 *image_info;
00085
00086 IsImageFormatHandler
00087 *magick;
00088
00089 MagickFormatType
00090 format_type;
00091
00092 MagickStatusType
00093 flags;
00094
00095 SemaphoreInfo
00096 *semaphore;
00097
00098 size_t
00099 signature;
00100
00101 void
00102 *client_data;
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 *GetMagickModuleName(const MagickInfo *),
00112 *GetMagickName(const MagickInfo *);
00113
00114 extern MagickExport DecodeImageHandler
00115 *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
00116
00117 extern MagickExport EncodeImageHandler
00118 *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
00119
00120 extern MagickExport int
00121 GetMagickPrecision(void),
00122 SetMagickPrecision(const int);
00123
00124 extern MagickExport MagickBooleanType
00125 GetImageMagick(const unsigned char *,const size_t,char *),
00126 GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
00127 GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
00128 GetMagickDecoderSeekableStream(const MagickInfo *)
00129 magick_attribute((__pure__)),
00130 GetMagickDecoderThreadSupport(const MagickInfo *)
00131 magick_attribute((__pure__)),
00132 GetMagickEncoderSeekableStream(const MagickInfo *)
00133 magick_attribute((__pure__)),
00134 GetMagickEncoderThreadSupport(const MagickInfo *)
00135 magick_attribute((__pure__)),
00136 GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
00137 GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
00138 GetMagickStealth(const MagickInfo *) magick_attribute((__pure__)),
00139 GetMagickUseExtension(const MagickInfo *) magick_attribute((__pure__)),
00140 IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
00141 RegisterMagickInfo(MagickInfo *),
00142 UnregisterMagickInfo(const char *);
00143
00144 extern const MagickExport MagickInfo
00145 *GetMagickInfo(const char *,ExceptionInfo *),
00146 **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
00147
00148 extern MagickExport MagickInfo
00149 *AcquireMagickInfo(const char *, const char *, const char *);
00150
00151 extern MagickExport void
00152 MagickCoreGenesis(const char *,const MagickBooleanType),
00153 MagickCoreTerminus(void);
00154
00155 #if defined(__cplusplus) || defined(c_plusplus)
00156 }
00157 #endif
00158
00159 #endif