summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-10-12 16:27:45 +0100
committerRobin Watts <robin.watts@artifex.com>2016-10-12 16:51:15 +0100
commitded36857c6ac60808909454a06e021fafe151f41 (patch)
treec7fb6c8d667bf5b3622d5f07704b23ff697b1fa4
parentf9bab4a5e0caee3fcc1f8ab9d809ab23be1acf96 (diff)
downloadmupdf-ded36857c6ac60808909454a06e021fafe151f41.tar.xz
Bug 697065: Fix bug in CMYK -> RGB pixmap converter.
When caching the cmyk values used to generate a given rgb value, it is best to cache the values before processing.
-rw-r--r--source/fitz/colorspace.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/source/fitz/colorspace.c b/source/fitz/colorspace.c
index 0e8ca594..6313fb70 100644
--- a/source/fitz/colorspace.c
+++ b/source/fitz/colorspace.c
@@ -1114,22 +1114,26 @@ static inline void cached_cmyk_conv(unsigned char *restrict const pr, unsigned c
}
else if (k == 0 && c == 0 && m == 0 && y == 0)
{
- *pr = *pg = *pb = 255;
*C = 0;
*M = 0;
*Y = 0;
*K = 0;
+ *pr = *pg = *pb = 255;
}
else if (k == 255)
{
- *pr = *pg = *pb = 0;
*C = 0;
*M = 0;
*Y = 0;
*K = 255;
+ *pr = *pg = *pb = 0;
}
else
{
+ *C = c;
+ *M = m;
+ *Y = y;
+ *K = k;
c += c>>7;
m += m>>7;
y += y>>7;
@@ -1221,10 +1225,6 @@ static inline void cached_cmyk_conv(unsigned char *restrict const pr, unsigned c
*pr = r>>23;
*pg = g>>23;
*pb = b>>23;
- *C = c;
- *M = m;
- *Y = y;
- *K = k;
}
#else
*pr = 255 - (unsigned char)fz_mini(c + k, 255);