diff options
author | Tor Andersson <tor@ghostscript.com> | 2010-08-12 14:38:45 +0000 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2010-08-12 14:38:45 +0000 |
commit | fd93fd4bdb93cc315bc99076c5d7744171c4d133 (patch) | |
tree | e004f7884a36f2b10257a3fad56d39a13ede4e45 | |
parent | 89365154d5cf23ed7cce262dbf799993899321c2 (diff) | |
download | mupdf-fd93fd4bdb93cc315bc99076c5d7744171c4d133.tar.xz |
Force image masks to ignore colorspace entry.
-rw-r--r-- | mupdf/pdf_image.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/mupdf/pdf_image.c b/mupdf/pdf_image.c index 946590d0..d8e327ba 100644 --- a/mupdf/pdf_image.c +++ b/mupdf/pdf_image.c @@ -24,7 +24,7 @@ pdf_maskcolorkey(fz_pixmap *pix, int n, int *colorkey) } static fz_error -pdf_loadimageimp(fz_pixmap **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz_stream *cstm) +pdf_loadimageimp(fz_pixmap **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz_stream *cstm, int forcemask) { fz_stream *stm; fz_pixmap *tile; @@ -68,7 +68,7 @@ pdf_loadimageimp(fz_pixmap **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz return fz_throw("image depth is zero"); obj = fz_dictgetsa(dict, "ColorSpace", "CS"); - if (obj && !imagemask) + if (obj && !imagemask && !forcemask) { if (fz_isname(obj)) { @@ -110,7 +110,7 @@ pdf_loadimageimp(fz_pixmap **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz /* Not allowed for inline images */ if (!cstm) { - error = pdf_loadimage(&mask, xref, rdb, obj); + error = pdf_loadimageimp(&mask, xref, rdb, obj, nil, 1); if (error) { if (colorspace) @@ -242,7 +242,7 @@ pdf_loadinlineimage(fz_pixmap **pixp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, pdf_logimage("load inline image {\n"); - error = pdf_loadimageimp(pixp, xref, rdb, dict, file); + error = pdf_loadimageimp(pixp, xref, rdb, dict, file, 0); if (error) return fz_rethrow(error, "cannot load inline image"); @@ -289,7 +289,7 @@ pdf_loadjpximage(fz_pixmap **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict) obj = fz_dictgetsa(dict, "SMask", "Mask"); if (fz_isdict(obj)) { - error = pdf_loadimage(&img->mask, xref, rdb, obj); + error = pdf_loadimageimp(&img->mask, xref, rdb, obj, nil, 1); if (error) { fz_droppixmap(img); @@ -325,7 +325,7 @@ pdf_loadimage(fz_pixmap **pixp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict) } else { - error = pdf_loadimageimp(pixp, xref, rdb, dict, nil); + error = pdf_loadimageimp(pixp, xref, rdb, dict, nil, 0); if (error) return fz_rethrow(error, "cannot load image (%d 0 R)", fz_tonum(dict)); } |