summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-08-12 14:38:45 +0000
committerTor Andersson <tor@ghostscript.com>2010-08-12 14:38:45 +0000
commitfd93fd4bdb93cc315bc99076c5d7744171c4d133 (patch)
treee004f7884a36f2b10257a3fad56d39a13ede4e45
parent89365154d5cf23ed7cce262dbf799993899321c2 (diff)
downloadmupdf-fd93fd4bdb93cc315bc99076c5d7744171c4d133.tar.xz
Force image masks to ignore colorspace entry.
-rw-r--r--mupdf/pdf_image.c12
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));
}