module dmagick.c.magick; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; extern(C) { enum MagickFormatType { UndefinedFormatType, ImplicitFormatType, ExplicitFormatType } enum MagickThreadSupport { NoThreadSupport = 0x0000, DecoderThreadSupport = 0x0001, EncoderThreadSupport = 0x0002 } alias Image* function(const ImageInfo*, ExceptionInfo*) DecodeImageHandler; alias MagickBooleanType function(const ImageInfo*, Image*) EncodeImageHandler; alias MagickBooleanType function(const ubyte*, const size_t) IsImageFormatHandler; struct MagickInfo { char* name, description, vversion, note, mmodule; ImageInfo* image_info; DecodeImageHandler* decoder; EncodeImageHandler* encoder; IsImageFormatHandler* magick; void* client_data; MagickBooleanType adjoin, raw, endian_support, blob_support, seekable_stream; MagickFormatType format_type; MagickStatusType thread_support; MagickBooleanType stealth; MagickInfo* previous, next; size_t signature; } char** GetMagickList(const char*, size_t*, ExceptionInfo*); const(char)* GetMagickDescription(const MagickInfo*); DecodeImageHandler* GetImageDecoder(const MagickInfo*); EncodeImageHandler* GetImageEncoder(const MagickInfo*); int GetMagickPrecision(); int SetMagickPrecision(const int); MagickBooleanType GetImageMagick(const ubyte*, const size_t, char*); MagickBooleanType GetMagickAdjoin(const MagickInfo*); MagickBooleanType GetMagickBlobSupport(const MagickInfo*); MagickBooleanType GetMagickEndianSupport(const MagickInfo*); MagickBooleanType GetMagickRawSupport(const MagickInfo*); MagickBooleanType GetMagickSeekableStream(const MagickInfo*); MagickBooleanType IsMagickInstantiated(); MagickBooleanType MagickComponentGenesis(); MagickBooleanType UnregisterMagickInfo(const char*); const(MagickInfo)* GetMagickInfo(const char*, ExceptionInfo*); const(MagickInfo)** GetMagickInfoList(const char*, size_t*, ExceptionInfo*); MagickInfo* RegisterMagickInfo(MagickInfo*); MagickInfo* SetMagickInfo(const char*); MagickStatusType GetMagickThreadSupport(const MagickInfo*); void MagickComponentTerminus(); void MagickCoreGenesis(const char*, const MagickBooleanType); void MagickCoreTerminus(); }