]> 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 #include <stdarg.h>
26 #include "MagickCore/semaphore.h"
27
28 typedef enum
29 {
30   UndefinedFormatType,
31   ImplicitFormatType,
32   ExplicitFormatType
33 } MagickFormatType;
34
35 typedef enum
36 {
37   NoThreadSupport = 0x0000,
38   DecoderThreadSupport = 0x0001,
39   EncoderThreadSupport = 0x0002
40 } MagickThreadSupport;
41
42 typedef Image
43   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
44
45 typedef MagickBooleanType
46   EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
47
48 typedef MagickBooleanType
49   IsImageFormatHandler(const unsigned char *,const size_t);
50
51 typedef struct _MagickInfo
52 {
53   char
54     *name,
55     *description,
56     *version,
57     *mime_type,
58     *note,
59     *module;
60
61   ImageInfo
62     *image_info;
63
64   DecodeImageHandler
65     *decoder;
66
67   EncodeImageHandler
68     *encoder;
69
70   IsImageFormatHandler
71     *magick;
72
73   void
74     *client_data;
75
76   MagickBooleanType
77     adjoin,
78     raw,
79     endian_support,
80     blob_support,
81     seekable_stream;
82
83   MagickFormatType
84     format_type;
85
86   MagickStatusType
87     thread_support;
88
89   MagickBooleanType
90     stealth;
91
92   SemaphoreInfo
93     *semaphore;
94
95   size_t
96     signature;
97 } MagickInfo;
98
99 extern MagickExport char
100   **GetMagickList(const char *,size_t *,ExceptionInfo *);
101
102 extern MagickExport const char
103   *GetMagickDescription(const MagickInfo *),
104   *GetMagickMimeType(const MagickInfo *);
105
106 extern MagickExport DecodeImageHandler
107   *GetImageDecoder(const MagickInfo *);
108
109 extern MagickExport EncodeImageHandler
110   *GetImageEncoder(const MagickInfo *);
111
112 extern MagickExport int
113   GetMagickPrecision(void),
114   SetMagickPrecision(const int);
115
116 extern MagickExport MagickBooleanType
117   GetImageMagick(const unsigned char *,const size_t,char *),
118   GetMagickAdjoin(const MagickInfo *),
119   GetMagickBlobSupport(const MagickInfo *),
120   GetMagickEndianSupport(const MagickInfo *),
121   GetMagickRawSupport(const MagickInfo *),
122   GetMagickSeekableStream(const MagickInfo *),
123   IsMagickCoreInstantiated(void),
124   UnregisterMagickInfo(const char *);
125
126 extern const MagickExport MagickInfo
127   *GetMagickInfo(const char *,ExceptionInfo *),
128   **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
129
130 extern MagickExport MagickInfo
131   *RegisterMagickInfo(MagickInfo *),
132   *SetMagickInfo(const char *);
133
134 extern MagickExport MagickStatusType
135   GetMagickThreadSupport(const MagickInfo *);
136
137 extern MagickExport void
138   MagickCoreGenesis(const char *,const MagickBooleanType),
139   MagickCoreTerminus(void);
140
141 #if defined(__cplusplus) || defined(c_plusplus)
142 }
143 #endif
144
145 #endif