From 6791295a4e8c99097e6d75870871e128284f8cb5 Mon Sep 17 00:00:00 2001 From: Nicolas Pena Date: Fri, 10 Mar 2017 15:15:33 -0500 Subject: Normalize channels when transforming CMYK to RGB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PDF spec, section 'DeviceCMYK Color Space' states that: 'Each component is specified by a number in the range 0.0 to 1.0' BUG=chromium:699459 Change-Id: Ie476bbe8740c7b1b33c80be3e3dc4207df5e6e28 Reviewed-on: https://pdfium-review.googlesource.com/2954 Commit-Queue: Nicolás Peña Reviewed-by: Tom Sepez --- core/fpdfapi/page/fpdf_page_colors.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'core/fpdfapi/page/fpdf_page_colors.cpp') diff --git a/core/fpdfapi/page/fpdf_page_colors.cpp b/core/fpdfapi/page/fpdf_page_colors.cpp index 69129e4f2b..54b61df975 100644 --- a/core/fpdfapi/page/fpdf_page_colors.cpp +++ b/core/fpdfapi/page/fpdf_page_colors.cpp @@ -46,13 +46,7 @@ void sRGB_to_AdobeCMYK(FX_FLOAT R, c = 1.0f - R; m = 1.0f - G; y = 1.0f - B; - k = c; - if (m < k) { - k = m; - } - if (y < k) { - k = y; - } + k = std::min(c, std::min(m, y)); } void ReverseRGB(uint8_t* pDestBuf, const uint8_t* pSrcBuf, int pixels) { @@ -101,7 +95,9 @@ bool CPDF_DeviceCS::GetRGB(FX_FLOAT* pBuf, G = 1.0f - std::min(1.0f, pBuf[1] + k); B = 1.0f - std::min(1.0f, pBuf[2] + k); } else { - AdobeCMYK_to_sRGB(pBuf[0], pBuf[1], pBuf[2], pBuf[3], R, G, B); + AdobeCMYK_to_sRGB(NormalizeChannel(pBuf[0]), NormalizeChannel(pBuf[1]), + NormalizeChannel(pBuf[2]), NormalizeChannel(pBuf[3]), + R, G, B); } break; default: -- cgit v1.2.3