From 28f82e3dd7c3075c221e8e01ab359c87470a3791 Mon Sep 17 00:00:00 2001 From: Andreas Gal Date: Sun, 29 Jan 2012 11:09:33 -0800 Subject: [PATCH 1/2] rewrite CMYK to RGB conversion --- src/colorspace.js | 57 ++++++++--------------------------------------- 1 file changed, 9 insertions(+), 48 deletions(-) diff --git a/src/colorspace.js b/src/colorspace.js index 827fd2e19..ad808df95 100644 --- a/src/colorspace.js +++ b/src/colorspace.js @@ -369,55 +369,16 @@ var DeviceCmykCS = (function DeviceCmykCSClosure() { DeviceCmykCS.prototype = { getRgb: function cmykcs_getRgb(color) { var c = color[0], m = color[1], y = color[2], k = color[3]; - var c1 = 1 - c, m1 = 1 - m, y1 = 1 - y, k1 = 1 - k; - var x, r, g, b; - // this is a matrix multiplication, unrolled for performance - // code is taken from the poppler implementation - x = c1 * m1 * y1 * k1; // 0 0 0 0 - r = g = b = x; - x = c1 * m1 * y1 * k; // 0 0 0 1 - r += 0.1373 * x; - g += 0.1216 * x; - b += 0.1255 * x; - x = c1 * m1 * y * k1; // 0 0 1 0 - r += x; - g += 0.9490 * x; - x = c1 * m1 * y * k; // 0 0 1 1 - r += 0.1098 * x; - g += 0.1020 * x; - x = c1 * m * y1 * k1; // 0 1 0 0 - r += 0.9255 * x; - b += 0.5490 * x; - x = c1 * m * y1 * k; // 0 1 0 1 - r += 0.1412 * x; - x = c1 * m * y * k1; // 0 1 1 0 - r += 0.9294 * x; - g += 0.1098 * x; - b += 0.1412 * x; - x = c1 * m * y * k; // 0 1 1 1 - r += 0.1333 * x; - x = c * m1 * y1 * k1; // 1 0 0 0 - g += 0.6784 * x; - b += 0.9373 * x; - x = c * m1 * y1 * k; // 1 0 0 1 - g += 0.0588 * x; - b += 0.1412 * x; - x = c * m1 * y * k1; // 1 0 1 0 - g += 0.6510 * x; - b += 0.3137 * x; - x = c * m1 * y * k; // 1 0 1 1 - g += 0.0745 * x; - x = c * m * y1 * k1; // 1 1 0 0 - r += 0.1804 * x; - g += 0.1922 * x; - b += 0.5725 * x; - x = c * m * y1 * k; // 1 1 0 1 - b += 0.0078 * x; - x = c * m * y * k1; // 1 1 1 0 - r += 0.2118 * x; - g += 0.2119 * x; - b += 0.2235 * x; + // CMYK -> CMY: http://www.easyrgb.com/index.php?X=MATH&H=14#text14 + c = (c * (1-k) + k); + m = (m * (1-k) + k); + y = (y * (1-k) + k); + + // CMY -> RGB: http://www.easyrgb.com/index.php?X=MATH&H=12#text12 + r = (1-c); + g = (1-m); + b = (1-y); return [r, g, b]; }, From 9650df5c10a51976d1b8600d79ff244274e5764c Mon Sep 17 00:00:00 2001 From: Andreas Gal Date: Sun, 29 Jan 2012 15:05:26 -0800 Subject: [PATCH 2/2] fix style and add var declaration --- src/colorspace.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/colorspace.js b/src/colorspace.js index ad808df95..d67d928b1 100644 --- a/src/colorspace.js +++ b/src/colorspace.js @@ -371,14 +371,14 @@ var DeviceCmykCS = (function DeviceCmykCSClosure() { var c = color[0], m = color[1], y = color[2], k = color[3]; // CMYK -> CMY: http://www.easyrgb.com/index.php?X=MATH&H=14#text14 - c = (c * (1-k) + k); - m = (m * (1-k) + k); - y = (y * (1-k) + k); + c = (c * (1 - k) + k); + m = (m * (1 - k) + k); + y = (y * (1 - k) + k); // CMY -> RGB: http://www.easyrgb.com/index.php?X=MATH&H=12#text12 - r = (1-c); - g = (1-m); - b = (1-y); + var r = (1 - c); + var g = (1 - m); + var b = (1 - y); return [r, g, b]; },