]> granicus.if.org Git - imagemagick/blob - magick/magick.h
(no commit message)
[imagemagick] / magick / magick.h
1 /*
2   Copyright 1999-2011 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 *);
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     *note,
55     *module;
56
57   ImageInfo
58     *image_info;
59
60   DecodeImageHandler
61     *decoder;
62
63   EncodeImageHandler
64     *encoder;
65
66   IsImageFormatHandler
67     *magick;
68
69   void
70     *client_data;
71
72   MagickBooleanType
73     adjoin,
74     raw,
75     endian_support,
76     blob_support,
77     seekable_stream;
78
79   MagickFormatType
80     format_type;
81
82   MagickStatusType
83     thread_support;
84
85   MagickBooleanType
86     stealth;
87
88   struct _MagickInfo
89     *previous,
90     *next;  /* deprecated, use GetMagickInfoList() */
91
92   size_t
93     signature;
94 } MagickInfo;
95
96 extern MagickExport char
97   **GetMagickList(const char *,size_t *,ExceptionInfo *);
98
99 extern MagickExport const char
100   *GetMagickDescription(const MagickInfo *);
101
102 extern MagickExport DecodeImageHandler
103   *GetImageDecoder(const MagickInfo *);
104
105 extern MagickExport EncodeImageHandler
106   *GetImageEncoder(const MagickInfo *);
107
108 extern MagickExport int
109   GetMagickPrecision(void),
110   SetMagickPrecision(const int);
111
112 extern MagickExport MagickBooleanType
113   GetImageMagick(const unsigned char *,const size_t,char *),
114   GetMagickAdjoin(const MagickInfo *),
115   GetMagickBlobSupport(const MagickInfo *),
116   GetMagickEndianSupport(const MagickInfo *),
117   GetMagickRawSupport(const MagickInfo *),
118   GetMagickSeekableStream(const MagickInfo *),
119   IsMagickInstantiated(void),
120   MagickComponentGenesis(void),
121   UnregisterMagickInfo(const char *);
122
123 extern const MagickExport MagickInfo
124   *GetMagickInfo(const char *,ExceptionInfo *),
125   **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
126
127 extern MagickExport MagickInfo
128   *RegisterMagickInfo(MagickInfo *),
129   *SetMagickInfo(const char *);
130
131 extern MagickExport MagickStatusType
132   GetMagickThreadSupport(const MagickInfo *);
133
134 extern MagickExport void
135   MagickComponentTerminus(void),
136   MagickCoreGenesis(const char *,const MagickBooleanType),
137   MagickCoreTerminus(void);
138
139 #if defined(__cplusplus) || defined(c_plusplus)
140 }
141 #endif
142
143 #endif