working version of PDFImage

This commit is contained in:
sbarman 2011-06-27 09:58:02 -07:00
parent ae87100a43
commit 2fdb200626

32
pdf.js
View File

@ -4446,14 +4446,39 @@ var PDFImage = (function() {
constructor.prototype = { constructor.prototype = {
getCompFunction: function getCompFunction(bpc, width, numComps, buffer) { getCompFunction: function getCompFunction(bpc, width, numComps, buffer) {
var bufferPos = 0; 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() { var getComp = function() {
return buffer[bufferPos++]; return buffer[bufferPos++];
} }
} else { } else {
var rowBytes = (width * numComps * bpc + 7) >> 3; var rowComps = width * numComps;
var curComp = 0;
var bits = 0; var bits = 0;
var buf = 0; var buf = 0;
var getComp = function() { var getComp = function() {
while (bits < bpc) { while (bits < bpc) {
buf = (buf << 8) | buffer[bufferPos++]; buf = (buf << 8) | buffer[bufferPos++];
@ -4461,8 +4486,9 @@ var PDFImage = (function() {
} }
var remainingBits = bits - bpc; var remainingBits = bits - bpc;
var ret = buf >> remainingBits; var ret = buf >> remainingBits;
curComp++;
if (bufferPos % rowBytes == 0) { if (curComp % rowComps == 0) {
buf = 0; buf = 0;
bits = 0; bits = 0;
} else { } else {