diff options
| author | Mike Wey | 2013-08-27 23:16:32 +0200 |
|---|---|---|
| committer | Mike Wey | 2013-08-27 23:16:32 +0200 |
| commit | 5c00245e50d3c3f035b9b3783193a43b507bc7f5 (patch) | |
| tree | e4b6f2f2c02ad6cb177d32332c1134c64626f03f /dmagick/Color.d | |
| parent | 651b1a2c0486cbba412b287c3c67a5b78c47c954 (diff) | |
Add HDRI support.
Diffstat (limited to 'dmagick/Color.d')
| -rw-r--r-- | dmagick/Color.d | 13 |
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"); } /* |
