• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2   Copyright 1999-2016 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   CoderNoFlag = 0x0000,
38   CoderAdjoinFlag = 0x0001,
39   CoderBlobSupportFlag = 0x0002,
40   CoderDecoderThreadSupportFlag = 0x0004,
41   CoderEncoderThreadSupportFlag = 0x0008,
42   CoderEndianSupportFlag = 0x0010,
43   CoderRawSupportFlag = 0x0020,
44   CoderSeekableStreamFlag = 0x0040,
45   CoderStealthFlag = 0x0080,
46   CoderUseExtensionFlag = 0x0100
47 } MagickInfoFlag;
48 
49 typedef Image
50   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
51 
52 typedef MagickBooleanType
53   EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
54 
55 typedef MagickBooleanType
56   IsImageFormatHandler(const unsigned char *,const size_t);
57 
58 typedef struct _MagickInfo
59 {
60   char
61     *name,
62     *description,
63     *version,
64     *mime_type,
65     *note,
66     *module;
67 
68   DecodeImageHandler
69     *decoder;
70 
71   EncodeImageHandler
72     *encoder;
73 
74   ImageInfo
75     *image_info;
76 
77   IsImageFormatHandler
78     *magick;
79 
80   MagickFormatType
81     format_type;
82 
83   MagickStatusType
84     flags;
85 
86   SemaphoreInfo
87     *semaphore;
88 
89   size_t
90     signature;
91 
92   void
93     *client_data;
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   *GetMagickMimeType(const MagickInfo *);
102 
103 extern MagickExport DecodeImageHandler
104   *GetImageDecoder(const MagickInfo *);
105 
106 extern MagickExport EncodeImageHandler
107   *GetImageEncoder(const MagickInfo *);
108 
109 extern MagickExport int
110   GetMagickPrecision(void),
111   SetMagickPrecision(const int);
112 
113 extern MagickExport MagickBooleanType
114   GetImageMagick(const unsigned char *,const size_t,char *),
115   GetMagickAdjoin(const MagickInfo *),
116   GetMagickBlobSupport(const MagickInfo *),
117   GetMagickDecoderThreadSupport(const MagickInfo *),
118   GetMagickEncoderThreadSupport(const MagickInfo *),
119   GetMagickEndianSupport(const MagickInfo *),
120   GetMagickRawSupport(const MagickInfo *),
121   GetMagickSeekableStream(const MagickInfo *),
122   GetMagickStealth(const MagickInfo *),
123   GetMagickUseExtension(const MagickInfo *),
124   IsMagickCoreInstantiated(void),
125   RegisterMagickInfo(MagickInfo *),
126   UnregisterMagickInfo(const char *);
127 
128 extern const MagickExport MagickInfo
129   *GetMagickInfo(const char *,ExceptionInfo *),
130   **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
131 
132 extern MagickExport MagickInfo
133   *AcquireMagickInfo(const char *, const char *, const char *);
134 
135 extern MagickExport void
136   MagickCoreGenesis(const char *,const MagickBooleanType),
137   MagickCoreTerminus(void);
138 
139 #if defined(__cplusplus) || defined(c_plusplus)
140 }
141 #endif
142 
143 #endif
144