MagickCore  6.9.12-67
Convert, Edit, Or Compose Bitmap Images
 All Data Structures
magick.h
1 /*
2  Copyright 1999-2021 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)
22 extern "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 
34 typedef enum
35 {
36  UndefinedFormatType,
37  ImplicitFormatType,
38  ExplicitFormatType
39 } MagickFormatType;
40 
41 typedef enum
42 {
43  NoThreadSupport = 0x0000,
44  DecoderThreadSupport = 0x0001,
45  EncoderThreadSupport = 0x0002
46 } MagickThreadSupport;
47 
48 typedef Image
49  *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
50 
51 typedef MagickBooleanType
52  EncodeImageHandler(const ImageInfo *,Image *);
53 
54 typedef MagickBooleanType
55  IsImageFormatHandler(const unsigned char *,const size_t);
56 
57 typedef struct _MagickInfo
58 {
59  char
60  *name,
61  *description,
62  *version,
63  *note,
64  *magick_module;
65 
66  ImageInfo
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 
111 extern MagickExport char
112  **GetMagickList(const char *,size_t *,ExceptionInfo *);
113 
114 extern MagickExport const char
115  *GetMagickDescription(const MagickInfo *),
116  *GetMagickMimeType(const MagickInfo *);
117 
118 extern MagickExport DecodeImageHandler
119  *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
120 
121 extern MagickExport EncodeImageHandler
122  *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
123 
124 extern MagickExport int
125  GetMagickPrecision(void),
126  SetMagickPrecision(const int);
127 
128 extern 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 
139 extern const MagickExport MagickInfo
140  *GetMagickInfo(const char *,ExceptionInfo *),
141  **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
142 
143 extern MagickExport MagickInfo
144  *RegisterMagickInfo(MagickInfo *),
145  *SetMagickInfo(const char *);
146 
147 extern MagickExport MagickStatusType
148  GetMagickThreadSupport(const MagickInfo *);
149 
150 extern 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
Definition: image.h:152