diff options
author | Robin Watts <robin.watts@artifex.com> | 2011-12-08 12:04:43 +0000 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2011-12-08 12:04:43 +0000 |
commit | 13dc7237ff5177b75fc6d5c1289eabc68cc7504b (patch) | |
tree | ebbcac2c91835576555d9e1c7130ad7bd1f2df0e /fitz/res_pixmap.c | |
parent | d0724c562bb7ae6ad81eb89b064d59a73685f3a8 (diff) | |
parent | ba531f60532022e3419628e506462b6b84279478 (diff) | |
download | mupdf-13dc7237ff5177b75fc6d5c1289eabc68cc7504b.tar.xz |
Merge branch 'master' into context
Diffstat (limited to 'fitz/res_pixmap.c')
-rw-r--r-- | fitz/res_pixmap.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fitz/res_pixmap.c b/fitz/res_pixmap.c index 471dcc72..1dfc8ad0 100644 --- a/fitz/res_pixmap.c +++ b/fitz/res_pixmap.c @@ -226,6 +226,26 @@ fz_premultiply_pixmap(fz_pixmap *pix) } } +void +fz_unmultiply_pixmap(fz_pixmap *pix) +{ + unsigned char *s = pix->samples; + int a, inva; + int k, x, y; + + for (y = 0; y < pix->h; y++) + { + for (x = 0; x < pix->w; x++) + { + a = s[pix->n - 1]; + inva = a ? 255 * 256 / a : 0; + for (k = 0; k < pix->n - 1; k++) + s[k] = (s[k] * inva) >> 8; + s += pix->n; + } + } +} + fz_pixmap * fz_alpha_from_gray(fz_context *ctx, fz_pixmap *gray, int luminosity) { |