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 }