Fixes issue #6071.

Corrects readBlockTiff() case for 1-bit depth and 1 color TIFF images incorporated in the PDF.

Adds reference test for PDF used to fix this issue.
This commit is contained in:
jazzchipc 2016-12-04 19:44:12 +00:00
parent 46d2c892de
commit 493853031b
3 changed files with 17 additions and 8 deletions

View File

@ -739,15 +739,16 @@ var PredictorStream = (function PredictorStreamClosure() {
var pos = bufferLength;
var i;
if (bits === 1) {
if (bits === 1 && colors === 1) {
// Optimized version of the loop in the "else"-branch
// for 1 bit-per-component and 1 color TIFF images.
for (i = 0; i < rowBytes; ++i) {
var c = rawBytes[i];
inbuf = (inbuf << 8) | c;
// bitwise addition is exclusive or
// first shift inbuf and then add
buffer[pos++] = (c ^ (inbuf >> colors)) & 0xFF;
// truncate inbuf (assumes colors < 16)
inbuf &= 0xFFFF;
var c = rawBytes[i] ^ inbuf;
c ^= c >> 1;
c ^= c >> 2;
c ^= c >> 4;
inbuf = (c & 1) << 7;
buffer[pos++] = c;
}
} else if (bits === 8) {
for (i = 0; i < colors; ++i) {

View File

@ -0,0 +1 @@
https://web.archive.org/web/20170107214304/https://www.pdf-archive.com/2017/01/07/issue6071/issue6071.pdf

View File

@ -1146,6 +1146,13 @@
"lastPage": 2,
"type": "eq"
},
{ "id": "issue6071",
"file": "pdfs/issue6071.pdf",
"md5": "2e08526d8e7c9ba4269fc12ef488d3eb",
"rounds": 1,
"link": true,
"type": "eq"
},
{ "id": "issue1905",
"file": "pdfs/issue1905.pdf",
"md5": "b1bbd72ca6522ae1502aa26320f81994",