1 module dmagick.c.magick;
2
3 import dmagick.c.exception;
4 import dmagick.c.image;
5 import dmagick.c.magickType;
6 import dmagick.c.magickVersion;
7 import dmagick.c.semaphore;
8
9 extern(C)
10 {
11 enum MagickFormatType
12 {
13 UndefinedFormatType,
14 ImplicitFormatType,
15 ExplicitFormatType
16 }
17
18 enum MagickThreadSupport
19 {
20 NoThreadSupport = 0x0000,
21 DecoderThreadSupport = 0x0001,
22 EncoderThreadSupport = 0x0002
23 }
24
25 alias Image* function(const(ImageInfo)*, ExceptionInfo*) DecodeImageHandler;
26 alias MagickBooleanType function(const(ImageInfo)*, Image*) EncodeImageHandler;
27 alias MagickBooleanType function(const(ubyte)*, const size_t) IsImageFormatHandler;
28
29 struct MagickInfo
30 {
31 char*
32 name,
33 description,
34 vversion,
35 note,
36 mmodule;
37
38 ImageInfo*
39 image_info;
40
41 DecodeImageHandler*
42 decoder;
43
44 EncodeImageHandler*
45 encoder;
46
47 IsImageFormatHandler*
48 magick;
49
50 void*
51 client_data;
52
53 MagickBooleanType
54 adjoin,
55 raw,
56 endian_support,
57 blob_support,
58 seekable_stream;
59
60 MagickFormatType
61 format_type;
62
63 MagickStatusType
64 thread_support;
65
66 MagickBooleanType
67 stealth;
68
69 MagickInfo*
70 previous,
71 next;
72
73 size_t
74 signature;
75
76 static if ( MagickLibVersion >= 0x687 )
77 {
78 char*
79 mime_type;
80 }
81
82 static if (MagickLibVersion >= 0x689)
83 {
84 SemaphoreInfo*
85 semaphore;
86 }
87 }
88
89 char** GetMagickList(const(char)*, size_t*, ExceptionInfo*);
90
91 const(char)* GetMagickDescription(const(MagickInfo)*);
92
93 static if ( MagickLibVersion >= 0x687 )
94 {
95 const(char)* GetMagickMimeType(const(MagickInfo)*);
96 }
97
98 DecodeImageHandler* GetImageDecoder(const(MagickInfo)*);
99
100 EncodeImageHandler* GetImageEncoder(const(MagickInfo)*);
101
102 int GetMagickPrecision();
103 int SetMagickPrecision(const int);
104
105 MagickBooleanType GetImageMagick(const(ubyte)*, const size_t, char*);
106 MagickBooleanType GetMagickAdjoin(const(MagickInfo)*);
107 MagickBooleanType GetMagickBlobSupport(const(MagickInfo)*);
108 MagickBooleanType GetMagickEndianSupport(const(MagickInfo)*);
109 MagickBooleanType GetMagickRawSupport(const(MagickInfo)*);
110 MagickBooleanType GetMagickSeekableStream(const(MagickInfo)*);
111
112 static if (MagickLibVersion < 0x689)
113 {
114 MagickBooleanType IsMagickInstantiated();
115 }
116
117 static if (MagickLibVersion >= 0x689)
118 {
119 MagickBooleanType IsMagickCoreInstantiated();
120 }
121
122 MagickBooleanType MagickComponentGenesis();
123 MagickBooleanType UnregisterMagickInfo(const(char)*);
124
125 const(MagickInfo)* GetMagickInfo(const(char)*, ExceptionInfo*);
126 const(MagickInfo)** GetMagickInfoList(const(char)*, size_t*, ExceptionInfo*);
127
128 MagickInfo* RegisterMagickInfo(MagickInfo*);
129 MagickInfo* SetMagickInfo(const(char)*);
130
131 MagickStatusType GetMagickThreadSupport(const(MagickInfo)*);
132
133 void MagickComponentTerminus();
134 void MagickCoreGenesis(const(char)*, const MagickBooleanType);
135 void MagickCoreTerminus();
136 }