summaryrefslogtreecommitdiff
path: root/dmagick/Color.d
diff options
context:
space:
mode:
authorMike Wey2013-08-27 23:16:32 +0200
committerMike Wey2013-08-27 23:16:32 +0200
commit5c00245e50d3c3f035b9b3783193a43b507bc7f5 (patch)
treee4b6f2f2c02ad6cb177d32332c1134c64626f03f /dmagick/Color.d
parent651b1a2c0486cbba412b287c3c67a5b78c47c954 (diff)
Add HDRI support.
Diffstat (limited to 'dmagick/Color.d')
-rw-r--r--dmagick/Color.d13
1 files changed, 9 insertions, 4 deletions
diff --git a/dmagick/Color.d b/dmagick/Color.d
index 0813dc2..11841c5 100644
--- a/dmagick/Color.d
+++ b/dmagick/Color.d
@@ -7,6 +7,7 @@
module dmagick.Color;
import std.conv;
+import std.math;
import std.string;
import dmagick.Exception;
@@ -112,13 +113,15 @@ class Color
string frm = "%02X";
else static if ( MagickQuantumDepth == 16 )
string frm = "%04X";
- else
+ else static if ( MagickQuantumDepth == 32 )
string frm = "%08X";
+ else
+ string frm = "%016X";
if ( packet.opacity == OpaqueOpacity )
- return format("#"~frm~frm~frm, packet.red, packet.green, packet.blue);
+ return format("#"~frm~frm~frm, rndtol(packet.red), rndtol(packet.green), rndtol(packet.blue));
else
- return format("#"~frm~frm~frm~frm, packet.red, packet.green, packet.blue, packet.opacity);
+ return format("#"~frm~frm~frm~frm, rndtol(packet.red), rndtol(packet.green), rndtol(packet.blue), rndtol(QuantumRange-packet.opacity));
}
unittest
@@ -129,8 +132,10 @@ class Color
assert(color.toString() == "#0000FF");
else static if ( MagickQuantumDepth == 16 )
assert(color.toString() == "#00000000FFFF");
- else
+ else static if ( MagickQuantumDepth == 16 )
assert(color.toString() == "#0000000000000000FFFFFFFF");
+ else
+ assert(color.toString() == "#00000000000000000000000000000000FFFFFFFFFFFFFFFF");
}
/*