summaryrefslogtreecommitdiff
path: root/dmagick/Image.d
diff options
context:
space:
mode:
authorMike Wey2011-01-29 18:01:34 +0100
committerMike Wey2011-01-29 18:01:34 +0100
commit593d9e0b18a4d935ab01024f4a0150825a3630e8 (patch)
tree13d0eab81111788cec9311a26f56fe527b89d056 /dmagick/Image.d
parentfc1d21fe9d9d7034c420c31babd7f8caa6378e22 (diff)
Add an Image class
Diffstat (limited to 'dmagick/Image.d')
-rw-r--r--dmagick/Image.d57
1 files changed, 57 insertions, 0 deletions
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);
+ }
+}