From 2fdb20062659b06baad531b4708ad0afc759f92e Mon Sep 17 00:00:00 2001 From: sbarman Date: Mon, 27 Jun 2011 09:58:02 -0700 Subject: [PATCH] working version of PDFImage --- pdf.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/pdf.js b/pdf.js index 8b8e6ff54..542c0d48a 100644 --- a/pdf.js +++ b/pdf.js @@ -4446,14 +4446,39 @@ var PDFImage = (function() { constructor.prototype = { getCompFunction: function getCompFunction(bpc, width, numComps, buffer) { var bufferPos = 0; - if (bpc == 8) { + if (bpc == 1) { + var rowComps = width * numComps; + var curComp = 0; + var mask = 0; + var buf = 0; + + var getComp = function() { + if (mask <= 0) { + buf = buffer[bufferPos++]; + mask = 128; + } + + var ret = buf & mask; + curComp++; + + if (curComp % rowComps == 0) { + mask = 0; + buf = 0; + } else { + mask >>= 1; + } + return ret * 255; + } + } else if (bpc == 8) { var getComp = function() { return buffer[bufferPos++]; } } else { - var rowBytes = (width * numComps * bpc + 7) >> 3; + var rowComps = width * numComps; + var curComp = 0; var bits = 0; var buf = 0; + var getComp = function() { while (bits < bpc) { buf = (buf << 8) | buffer[bufferPos++]; @@ -4461,8 +4486,9 @@ var PDFImage = (function() { } var remainingBits = bits - bpc; var ret = buf >> remainingBits; + curComp++; - if (bufferPos % rowBytes == 0) { + if (curComp % rowComps == 0) { buf = 0; bits = 0; } else {