summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dmagick/Image.d57
-rw-r--r--dmagick/Options.d4
-rw-r--r--dmagick/Utils.d2
3 files changed, 60 insertions, 3 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);
+ }
+}
diff --git a/dmagick/Options.d b/dmagick/Options.d
index 8798a6d..a9e47ec 100644
--- a/dmagick/Options.d
+++ b/dmagick/Options.d
@@ -1017,12 +1017,12 @@ class Options
* may give better results when color reducing an image.
* The default is RGB
*/
- void quantizeColorSpace(ColorSpaceType type)
+ void quantizeColorSpace(ColorspaceType type)
{
quantizeInfo.colorspace = type;
}
///ditto
- ColorSpaceType quantizeColorSpace()
+ ColorspaceType quantizeColorSpace()
{
return quantizeInfo.colorspace;
}
diff --git a/dmagick/Utils.d b/dmagick/Utils.d
index f853350..2550c40 100644
--- a/dmagick/Utils.d
+++ b/dmagick/Utils.d
@@ -66,7 +66,7 @@ real degreesToRadians(real deg)
}
struct RefCounted(alias pred, T)
- if ( !is(T == class) && is(typeof(pred(null)) == void) )
+ if ( !is(T == class) && is(typeof(pred(cast(T*)null)) == void) )
{
T* payload;