blob: 6eed97775675a12162e1a7666a9629a6535d385d [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001/*
cristy7e41fe82010-12-04 23:12:08 +00002 Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
cristy3ed852e2009-09-05 21:47:34 +00003 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)
22extern "C" {
23#endif
24
25typedef enum
26{
27 UndefinedFormatType,
28 ImplicitFormatType,
29 ExplicitFormatType
30} MagickFormatType;
31
32typedef enum
33{
34 NoThreadSupport = 0x0000,
35 DecoderThreadSupport = 0x0001,
36 EncoderThreadSupport = 0x0002
37} MagickThreadSupport;
38
39typedef Image
40 *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
41
42typedef MagickBooleanType
cristy1e178e72011-08-28 19:44:34 +000043 EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +000044
45typedef MagickBooleanType
46 IsImageFormatHandler(const unsigned char *,const size_t);
47
48typedef 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
cristybb503372010-05-27 20:51:26 +000088 size_t
cristy3ed852e2009-09-05 21:47:34 +000089 signature;
90} MagickInfo;
91
92extern MagickExport char
cristybb503372010-05-27 20:51:26 +000093 **GetMagickList(const char *,size_t *,ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +000094
95extern MagickExport const char
96 *GetMagickDescription(const MagickInfo *);
97
98extern MagickExport DecodeImageHandler
99 *GetImageDecoder(const MagickInfo *);
100
101extern MagickExport EncodeImageHandler
102 *GetImageEncoder(const MagickInfo *);
103
cristy7ce14bc2010-01-17 00:01:01 +0000104extern MagickExport int
cristybf2766a2010-01-17 03:33:23 +0000105 GetMagickPrecision(void),
106 SetMagickPrecision(const int);
cristy7ce14bc2010-01-17 00:01:01 +0000107
cristy3ed852e2009-09-05 21:47:34 +0000108extern MagickExport MagickBooleanType
109 GetImageMagick(const unsigned char *,const size_t,char *),
110 GetMagickAdjoin(const MagickInfo *),
111 GetMagickBlobSupport(const MagickInfo *),
112 GetMagickEndianSupport(const MagickInfo *),
113 GetMagickRawSupport(const MagickInfo *),
114 GetMagickSeekableStream(const MagickInfo *),
115 IsMagickInstantiated(void),
cristyf34a1452009-10-24 22:29:27 +0000116 MagickComponentGenesis(void),
cristy3ed852e2009-09-05 21:47:34 +0000117 UnregisterMagickInfo(const char *);
118
119extern const MagickExport MagickInfo
120 *GetMagickInfo(const char *,ExceptionInfo *),
cristybb503372010-05-27 20:51:26 +0000121 **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000122
123extern MagickExport MagickInfo
124 *RegisterMagickInfo(MagickInfo *),
125 *SetMagickInfo(const char *);
126
127extern MagickExport MagickStatusType
128 GetMagickThreadSupport(const MagickInfo *);
129
130extern MagickExport void
cristyf34a1452009-10-24 22:29:27 +0000131 MagickComponentTerminus(void),
cristy3ed852e2009-09-05 21:47:34 +0000132 MagickCoreGenesis(const char *,const MagickBooleanType),
cristybf2766a2010-01-17 03:33:23 +0000133 MagickCoreTerminus(void);
cristy3ed852e2009-09-05 21:47:34 +0000134
135#if defined(__cplusplus) || defined(c_plusplus)
136}
137#endif
138
139#endif