MagickCore 6.9.13
Loading...
Searching...
No Matches
magick.h
1/*
2 Copyright 1999 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. You may
6 obtain a copy of the License at
7
8 https://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
25#include <stdarg.h>
26#include "magick/semaphore.h"
27
28#if defined(__cplusplus) || defined(c_plusplus)
29# define magick_module _module /* reserved word in C++(20) */
30#else
31# define magick_module module
32#endif
33
34typedef enum
35{
36 UndefinedFormatType,
37 ImplicitFormatType,
38 ExplicitFormatType
39} MagickFormatType;
40
41typedef enum
42{
43 NoThreadSupport = 0x0000,
44 DecoderThreadSupport = 0x0001,
45 EncoderThreadSupport = 0x0002
46} MagickThreadSupport;
47
48typedef Image
49 *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
50
51typedef MagickBooleanType
52 EncodeImageHandler(const ImageInfo *,Image *);
53
54typedef MagickBooleanType
55 IsImageFormatHandler(const unsigned char *,const size_t);
56
57typedef struct _MagickInfo
58{
59 char
60 *name,
61 *description,
62 *version,
63 *note,
64 *magick_module;
65
67 *image_info;
68
69 DecodeImageHandler
70 *decoder;
71
72 EncodeImageHandler
73 *encoder;
74
75 IsImageFormatHandler
76 *magick;
77
78 void
79 *client_data;
80
81 MagickBooleanType
82 adjoin,
83 raw,
84 endian_support,
85 blob_support,
86 seekable_stream;
87
88 MagickFormatType
89 format_type;
90
91 MagickStatusType
92 thread_support;
93
94 MagickBooleanType
95 stealth;
96
97 struct _MagickInfo
98 *previous,
99 *next; /* deprecated, use GetMagickInfoList() */
100
101 size_t
102 signature;
103
104 char
105 *mime_type;
106
108 *semaphore;
109} MagickInfo;
110
111extern MagickExport char
112 **GetMagickList(const char *,size_t *,ExceptionInfo *);
113
114extern MagickExport const char
115 *GetMagickDescription(const MagickInfo *),
116 *GetMagickMimeType(const MagickInfo *);
117
118extern MagickExport DecodeImageHandler
119 *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
120
121extern MagickExport EncodeImageHandler
122 *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
123
124extern MagickExport int
125 GetMagickPrecision(void),
126 SetMagickPrecision(const int);
127
128extern MagickExport MagickBooleanType
129 GetImageMagick(const unsigned char *,const size_t,char *),
130 GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
131 GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
132 GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
133 GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
134 GetMagickSeekableStream(const MagickInfo *) magick_attribute((__pure__)),
135 IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
136 MagickComponentGenesis(void),
137 UnregisterMagickInfo(const char *);
138
139extern const MagickExport MagickInfo
140 *GetMagickInfo(const char *,ExceptionInfo *),
141 **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
142
143extern MagickExport MagickInfo
144 *RegisterMagickInfo(MagickInfo *),
145 *SetMagickInfo(const char *);
146
147extern MagickExport MagickStatusType
148 GetMagickThreadSupport(const MagickInfo *);
149
150extern MagickExport void
151 MagickComponentTerminus(void),
152 MagickCoreGenesis(const char *,const MagickBooleanType),
153 MagickCoreTerminus(void);
154
155#if defined(__cplusplus) || defined(c_plusplus)
156}
157#endif
158
159#endif