summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/fpdf_page_colors.cpp
diff options
context:
space:
mode:
authorNicolas Pena <npm@chromium.org>2017-03-10 15:15:33 -0500
committerChromium commit bot <commit-bot@chromium.org>2017-03-10 20:46:14 +0000
commit6791295a4e8c99097e6d75870871e128284f8cb5 (patch)
treeb541a50b59773f34b227b2b459a52d643451289a /core/fpdfapi/page/fpdf_page_colors.cpp
parent5c1961dfa0b1828eb2db38dc637548584c5cc704 (diff)
downloadpdfium-6791295a4e8c99097e6d75870871e128284f8cb5.tar.xz
Normalize channels when transforming CMYK to RGB
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 <npm@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/fpdf_page_colors.cpp')
-rw-r--r--core/fpdfapi/page/fpdf_page_colors.cpp12
1 files changed, 4 insertions, 8 deletions
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: