]> granicus.if.org Git - imagemagick/blob - MagickCore/magick.h
(no commit message)
[imagemagick] / MagickCore / magick.h
1 /*
2   Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4   
5   You may not use this file except in compliance with the License.
6   obtain a copy of the License at
7   
8     http://www.imagemagick.org/script/license.php
9   
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15
16   MagickCore magick methods.
17 */
18 #ifndef _MAGICKCORE_MAGICK_H
19 #define _MAGICKCORE_MAGICK_H
20
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24
25 typedef enum
26 {
27   UndefinedFormatType,
28   ImplicitFormatType,
29   ExplicitFormatType
30 } MagickFormatType;
31
32 typedef enum
33 {
34   NoThreadSupport = 0x0000,
35   DecoderThreadSupport = 0x0001,
36   EncoderThreadSupport = 0x0002
37 } MagickThreadSupport;
38
39 typedef Image
40   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
41
42 typedef MagickBooleanType
43   EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
44
45 typedef MagickBooleanType
46   IsImageFormatHandler(const unsigned char *,const size_t);
47
48 typedef struct _MagickInfo
49 {
50   char
51     *name,
52     *description,
53     *version,
54     *mime_type,
55     *note,
56     *module;
57
58   ImageInfo
59     *image_info;
60
61   DecodeImageHandler
62     *decoder;
63
64   EncodeImageHandler
65     *encoder;
66
67   IsImageFormatHandler
68     *magick;
69
70   void
71     *client_data;
72
73   MagickBooleanType
74     adjoin,
75     raw,
76     endian_support,
77     blob_support,
78     seekable_stream;
79
80   MagickFormatType
81     format_type;
82
83   MagickStatusType
84     thread_support;
85
86   MagickBooleanType
87     stealth;
88
89   size_t
90     signature;
91 } MagickInfo;
92
93 extern MagickExport char
94   **GetMagickList(const char *,size_t *,ExceptionInfo *);
95
96 extern MagickExport const char
97   *GetMagickDescription(const MagickInfo *),
98   *GetMagickMimeType(const MagickInfo *);
99
100 extern MagickExport DecodeImageHandler
101   *GetImageDecoder(const MagickInfo *);
102
103 extern MagickExport EncodeImageHandler
104   *GetImageEncoder(const MagickInfo *);
105
106 extern MagickExport int
107   GetMagickPrecision(void),
108   SetMagickPrecision(const int);
109
110 extern MagickExport MagickBooleanType
111   GetImageMagick(const unsigned char *,const size_t,char *),
112   GetMagickAdjoin(const MagickInfo *),
113   GetMagickBlobSupport(const MagickInfo *),
114   GetMagickEndianSupport(const MagickInfo *),
115   GetMagickRawSupport(const MagickInfo *),
116   GetMagickSeekableStream(const MagickInfo *),
117   IsMagickInstantiated(void),
118   UnregisterMagickInfo(const char *);
119
120 extern const MagickExport MagickInfo
121   *GetMagickInfo(const char *,ExceptionInfo *),
122   **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
123
124 extern MagickExport MagickInfo
125   *RegisterMagickInfo(MagickInfo *),
126   *SetMagickInfo(const char *);
127
128 extern MagickExport MagickStatusType
129   GetMagickThreadSupport(const MagickInfo *);
130
131 extern MagickExport void
132   MagickCoreGenesis(const char *,const MagickBooleanType),
133   MagickCoreTerminus(void);
134
135 #if defined(__cplusplus) || defined(c_plusplus)
136 }
137 #endif
138
139 #endif