diff --git a/src/core/image.js b/src/core/image.js index 5f3aa6c13..2d1f9d6e1 100644 --- a/src/core/image.js +++ b/src/core/image.js @@ -140,7 +140,12 @@ var PDFImage = (function PDFImageClosure() { this.smask = new PDFImage(xref, res, smask, false); } else if (mask) { if (isStream(mask)) { - this.mask = new PDFImage(xref, res, mask, false, null, null, true); + var maskDict = mask.dict, imageMask = maskDict.get('ImageMask', 'IM'); + if (!imageMask) { + warn('Ignoring /Mask in image without /ImageMask.'); + } else { + this.mask = new PDFImage(xref, res, mask, false, null, null, true); + } } else { // Color key mask (just an array). this.mask = mask; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index d47a4652b..05d5598e1 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -32,6 +32,7 @@ !issue3879r.pdf !close-path-bug.pdf !issue6019.pdf +!issue6621.pdf !issue1293r.pdf !issue6541.pdf !issue2948.pdf diff --git a/test/pdfs/issue6621.pdf b/test/pdfs/issue6621.pdf new file mode 100644 index 000000000..ea3cd73a2 Binary files /dev/null and b/test/pdfs/issue6621.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index cce065970..15720a018 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -732,6 +732,13 @@ "rounds": 1, "type": "load" }, + { "id": "issue6621", + "file": "pdfs/issue6621.pdf", + "md5": "8079ce514fb2cdded4251eade6380ba9", + "link": false, + "rounds": 1, + "type": "eq" + }, { "id": "scan-bad", "file": "pdfs/scan-bad.pdf", "md5": "4cf988f01ab83f61aca57f406dfd6584",