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