summaryrefslogtreecommitdiff
path: root/dmagick/ColorRGB.d
diff options
context:
space:
mode:
authorMike Wey2011-02-20 20:41:35 +0100
committerMike Wey2011-02-20 20:41:35 +0100
commitefd789405e397e0d3d3a3055b80b3350be7444e1 (patch)
treeb5dc0bedbd8ee9c2d1e5c965f6696dd5728ee45e /dmagick/ColorRGB.d
parentff26b979509498cc5ebd2ab003b6f3e530fdc4c9 (diff)
Add ColorRGB
Diffstat (limited to 'dmagick/ColorRGB.d')
-rw-r--r--dmagick/ColorRGB.d109
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);
+ }
+}