diff options
| -rw-r--r-- | dmagick/Image.d | 57 | ||||
| -rw-r--r-- | dmagick/Options.d | 4 | ||||
| -rw-r--r-- | dmagick/Utils.d | 2 |
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; |
