From 9bda8c7e42724ab709cc1552a1e79a181ccb3fc5 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Fri, 6 Jan 2012 12:06:24 +0000 Subject: Clamp pixel values after applying Decode array to images. Thanks to Zeniko for pointing this out. --- draw/draw_unpack.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/draw/draw_unpack.c b/draw/draw_unpack.c index b60de3b8..6da5e8a3 100644 --- a/draw/draw_unpack.c +++ b/draw/draw_unpack.c @@ -197,7 +197,10 @@ fz_decode_indexed_tile(fz_pixmap *pix, float *decode, int maxval) while (len--) { for (k = 0; k < n; k++) - p[k] = (add[k] + (((p[k] << 8) * mul[k]) >> 8)) >> 8; + { + int value = (add[k] + (((p[k] << 8) * mul[k]) >> 8)) >> 8; + p[k] = CLAMP(value, 0, 255); + } p += n + 1; } } @@ -229,7 +232,10 @@ fz_decode_tile(fz_pixmap *pix, float *decode) while (len--) { for (k = 0; k < n; k++) - p[k] = add[k] + fz_mul255(p[k], mul[k]); + { + int value = add[k] + fz_mul255(p[k], mul[k]); + p[k] = CLAMP(value, 0, 255); + } p += pix->n; } } -- cgit v1.2.3