From 555d33ffc775d727eb07256acd94366dac349e59 Mon Sep 17 00:00:00 2001 From: "Basil A. Zabairatsky" Date: Thu, 6 Feb 2014 00:58:14 +0600 Subject: [PATCH] Support for the image mask in higher resolution than the image itself --- src/core/image.js | 12 ++++++------ test/pdfs/.gitignore | 1 + test/pdfs/issue4246.pdf | Bin 0 -> 7068 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 test/pdfs/issue4246.pdf diff --git a/src/core/image.js b/src/core/image.js index 1adad5e29..2e01cbadf 100644 --- a/src/core/image.js +++ b/src/core/image.js @@ -228,14 +228,14 @@ var PDFImage = (function PDFImageClosure() { PDFImage.prototype = { get drawWidth() { - if (!this.smask) - return this.width; - return Math.max(this.width, this.smask.width); + return Math.max(this.width, + this.smask && this.smask.width || 0, + this.mask && this.mask.width || 0); }, get drawHeight() { - if (!this.smask) - return this.height; - return Math.max(this.height, this.smask.height); + return Math.max(this.height, + this.smask && this.smask.height || 0, + this.mask && this.mask.height || 0); }, decodeBuffer: function PDFImage_decodeBuffer(buffer) { var bpc = this.bpc; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 0489087bf..fe42cdffe 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -66,3 +66,4 @@ !bug946506.pdf !issue3885.pdf !bug859204.pdf +!issue4246.pdf diff --git a/test/pdfs/issue4246.pdf b/test/pdfs/issue4246.pdf new file mode 100644 index 0000000000000000000000000000000000000000..736558e028613fe58b94e2896f67fd7ade4fed46 GIT binary patch literal 7068 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