File indexing completed on 2025-01-30 10:11:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef MAGICKCORE_MAGICK_H
0019 #define MAGICKCORE_MAGICK_H
0020
0021 #if defined(__cplusplus) || defined(c_plusplus)
0022 extern "C" {
0023 #endif
0024
0025 #include <stdarg.h>
0026 #include "MagickCore/semaphore.h"
0027
0028 #if defined(__cplusplus) || defined(c_plusplus)
0029 # define magick_module _module
0030 #else
0031 # define magick_module module
0032 #endif
0033
0034 typedef enum
0035 {
0036 UndefinedFormatType,
0037 ImplicitFormatType,
0038 ExplicitFormatType
0039 } MagickFormatType;
0040
0041 typedef enum
0042 {
0043 CoderNoFlag = 0x0000,
0044 CoderAdjoinFlag = 0x0001,
0045 CoderBlobSupportFlag = 0x0002,
0046 CoderDecoderThreadSupportFlag = 0x0004,
0047 CoderEncoderThreadSupportFlag = 0x0008,
0048 CoderEndianSupportFlag = 0x0010,
0049 CoderRawSupportFlag = 0x0020,
0050 CoderSeekableStreamFlag = 0x0040,
0051 CoderStealthFlag = 0x0080,
0052 CoderUseExtensionFlag = 0x0100,
0053 CoderDecoderSeekableStreamFlag = 0x0200,
0054 CoderEncoderSeekableStreamFlag = 0x0400
0055 } MagickInfoFlag;
0056
0057 typedef Image
0058 *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
0059
0060 typedef MagickBooleanType
0061 EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
0062
0063 typedef MagickBooleanType
0064 IsImageFormatHandler(const unsigned char *,const size_t);
0065
0066 typedef struct _MagickInfo
0067 {
0068 char
0069 *name,
0070 *description,
0071 *version,
0072 *mime_type,
0073 *note,
0074 *magick_module;
0075
0076 DecodeImageHandler
0077 *decoder;
0078
0079 EncodeImageHandler
0080 *encoder;
0081
0082 ImageInfo
0083 *image_info;
0084
0085 IsImageFormatHandler
0086 *magick;
0087
0088 MagickFormatType
0089 format_type;
0090
0091 MagickStatusType
0092 flags;
0093
0094 SemaphoreInfo
0095 *semaphore;
0096
0097 size_t
0098 signature;
0099
0100 void
0101 *client_data;
0102 } MagickInfo;
0103
0104 extern MagickExport char
0105 **GetMagickList(const char *,size_t *,ExceptionInfo *);
0106
0107 extern MagickExport const char
0108 *GetMagickDescription(const MagickInfo *),
0109 *GetMagickMimeType(const MagickInfo *),
0110 *GetMagickModuleName(const MagickInfo *),
0111 *GetMagickName(const MagickInfo *);
0112
0113 extern MagickExport DecodeImageHandler
0114 *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
0115
0116 extern MagickExport EncodeImageHandler
0117 *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
0118
0119 extern MagickExport int
0120 GetMagickPrecision(void),
0121 SetMagickPrecision(const int);
0122
0123 extern MagickExport MagickBooleanType
0124 GetImageMagick(const unsigned char *,const size_t,char *),
0125 GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
0126 GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
0127 GetMagickDecoderSeekableStream(const MagickInfo *)
0128 magick_attribute((__pure__)),
0129 GetMagickDecoderThreadSupport(const MagickInfo *)
0130 magick_attribute((__pure__)),
0131 GetMagickEncoderSeekableStream(const MagickInfo *)
0132 magick_attribute((__pure__)),
0133 GetMagickEncoderThreadSupport(const MagickInfo *)
0134 magick_attribute((__pure__)),
0135 GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
0136 GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
0137 GetMagickStealth(const MagickInfo *) magick_attribute((__pure__)),
0138 GetMagickUseExtension(const MagickInfo *) magick_attribute((__pure__)),
0139 IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
0140 RegisterMagickInfo(MagickInfo *),
0141 UnregisterMagickInfo(const char *);
0142
0143 extern const MagickExport MagickInfo
0144 *GetMagickInfo(const char *,ExceptionInfo *),
0145 **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
0146
0147 extern MagickExport MagickInfo
0148 *AcquireMagickInfo(const char *, const char *, const char *);
0149
0150 extern MagickExport void
0151 MagickCoreGenesis(const char *,const MagickBooleanType),
0152 MagickCoreTerminus(void);
0153
0154 #if defined(__cplusplus) || defined(c_plusplus)
0155 }
0156 #endif
0157
0158 #endif