diff options
Diffstat (limited to 'dmagick/Color.d')
| -rw-r--r-- | dmagick/Color.d | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/dmagick/Color.d b/dmagick/Color.d new file mode 100644 index 0000000..f428f95 --- /dev/null +++ b/dmagick/Color.d @@ -0,0 +1,79 @@ +/** + * The image + * + * Copyright: Mike Wey 2011 + * License: To be determined + * Authors: Mike Wey + */ + +module dmagick.Color; + +import std.string; + +import dmagick.Exception; +import dmagick.Utils; + +import dmagick.c.color; +import dmagick.c.exception; +import dmagick.c.pixel; +import dmagick.c.magickType; + +class Color +{ + PixelPacket pixelPacket; + + this() + { + pixelPacket.opacity = TransparentOpacity; + } + + this(Quantum red, Quantum green, Quantum blue) + { + this(red, green, blue, 0); + } + + this(Quantum red, Quantum green, Quantum blue, Quantum opacity) + { + this(); + + pixelPacket.red = red; + pixelPacket.green = green; + pixelPacket.blue = blue; + pixelPacket.opacity = opacity; + } + + this(string color) + { + this(); + + ExceptionInfo* exception = AcquireExceptionInfo(); + const(char)* name = toStringz(color); + + QueryColorDatabase(name, &pixelPacket, exception); + DMagickException.throwException(exception); + + DestroyExceptionInfo(exception); + } + + this(PixelPacket packet) + { + pixelPacket = packet; + } + + bool opEquals(Color color) + { + return pixelPacket == color.pixelPacket; + } + + override string toString() + { + //TODO + + return "none"; + } + + Color clone() + { + return new Color(pixelPacket); + } +} |
