diff options
| author | Mike Wey | 2011-02-20 20:41:35 +0100 |
|---|---|---|
| committer | Mike Wey | 2011-02-20 20:41:35 +0100 |
| commit | efd789405e397e0d3d3a3055b80b3350be7444e1 (patch) | |
| tree | b5dc0bedbd8ee9c2d1e5c965f6696dd5728ee45e /dmagick/ColorRGB.d | |
| parent | ff26b979509498cc5ebd2ab003b6f3e530fdc4c9 (diff) | |
Add ColorRGB
Diffstat (limited to 'dmagick/ColorRGB.d')
| -rw-r--r-- | dmagick/ColorRGB.d | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/dmagick/ColorRGB.d b/dmagick/ColorRGB.d new file mode 100644 index 0000000..777c300 --- /dev/null +++ b/dmagick/ColorRGB.d @@ -0,0 +1,109 @@ +/** + * Copyright: Mike Wey 2011 + * License: To be determined + * Authors: Mike Wey + */ + +module dmagick.ColorRGB; + +import dmagick.Color; + +import dmagick.c.magickType; +import dmagick.c.quantum; + +class ColorRGB : Color +{ + this() + { + super(); + } + + /** + * Create a Color from the specified Bytes. + */ + this(ubyte red, ubyte green, ubyte blue, ubyte opacity = 0) + { + super(); + + pixelPacket.red = ScaleCharToQuantum(red); + pixelPacket.green = ScaleCharToQuantum(green); + pixelPacket.blue = ScaleCharToQuantum(blue); + pixelPacket.opacity = ScaleCharToQuantum(opacity); + } + + /** + * Create a Color from the specified doubles. + * The values should be between 0.0 and 1.0. + */ + this(double red, double green, double blue, double opacity = 0) + { + super(); + + pixelPacket.red = scaleDoubleToQuantum(red); + pixelPacket.green = scaleDoubleToQuantum(green); + pixelPacket.blue = scaleDoubleToQuantum(blue); + pixelPacket.opacity = scaleDoubleToQuantum(opacity); + } + + /** + * Create a Color from a X11 color specification string + */ + this(string color) + { + super(color); + } + + void redByte(ubyte red) + { + pixelPacket.red = ScaleCharToQuantum(red); + } + ubyte redByte() + { + return ScaleQuantumToChar(pixelPacket.red); + } + + void greenByte(ubyte green) + { + pixelPacket.green = ScaleCharToQuantum(green); + } + ubyte greenByte() + { + return ScaleQuantumToChar(pixelPacket.green); + } + + void blueByte(ubyte blue) + { + pixelPacket.blue = ScaleCharToQuantum(blue); + } + ubyte blueByte() + { + return ScaleQuantumToChar(pixelPacket.blue); + } + + void red(double red) + { + pixelPacket.red = scaleDoubleToQuantum(red); + } + double red() + { + return scaleQuantumToDouble(pixelPacket.red); + } + + void green(double green) + { + pixelPacket.green = scaleDoubleToQuantum(green); + } + double green() + { + return scaleQuantumToDouble(pixelPacket.green); + } + + void blue(double blue) + { + pixelPacket.blue = scaleDoubleToQuantum(blue); + } + double blue() + { + return scaleQuantumToDouble(pixelPacket.blue); + } +} |
