From 5c00245e50d3c3f035b9b3783193a43b507bc7f5 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Tue, 27 Aug 2013 23:16:32 +0200 Subject: Add HDRI support. --- dmagick/Color.d | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'dmagick/Color.d') 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"); } /* -- cgit v1.2.3