From 593d9e0b18a4d935ab01024f4a0150825a3630e8 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Sat, 29 Jan 2011 18:01:34 +0100 Subject: Add an Image class --- dmagick/Image.d | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 dmagick/Image.d (limited to 'dmagick/Image.d') diff --git a/dmagick/Image.d b/dmagick/Image.d new file mode 100644 index 0000000..2b66aaa --- /dev/null +++ b/dmagick/Image.d @@ -0,0 +1,57 @@ +/** + * The image + * + * Copyright: Mike Wey 2011 + * License: To be determined + * Authors: Mike Wey + */ + +module dmagick.Image; + +import dmagick.Options; +import dmagick.Utils; + +import dmagick.c.constitute; +import dmagick.c.exception; +import dmagick.c.image; + + +class Image +{ + alias dmagick.c.image.Image MagickCoreImage; + //We can't reduce the function literal further, becase that generates an error. + alias RefCounted!( function(MagickCoreImage* img) + { + img = DestroyImage(img); + }, MagickCoreImage ) ImageRef; + + + ImageRef imageRef; + Options options; + + this() + { + options = new Options(); + imageRef = ImageRef(AcquireImage(options.imageInfo)); + } + + this(string filename) + { + options = new Options(); + + read(filename); + } + + void read(string filename) + { + options.filename = filename; + + ExceptionInfo* exception = AcquireExceptionInfo(); + MagickCoreImage* image = ReadImage(options.imageInfo, exception); + + //TODO: Throw if exception. + + imageRef = ImageRef(image); + DestroyExceptionInfo(exception); + } +} -- cgit v1.2.3