Merge remote branch 'upstream/master'

This commit is contained in:
Vivien Nicolas 2011-08-30 00:56:20 +02:00
commit b4f3ceef85
8 changed files with 133 additions and 16 deletions

24
pdf.js
View file

@ -4381,7 +4381,7 @@ var PartialEvaluator = (function() {
var descriptor = xref.fetch(fd);
var fontName = fontDict.get('Name');
if (!fontName)
fontName = xref.fetchIfRef(descriptor.get('FontName'));;
fontName = xref.fetchIfRef(descriptor.get('FontName'));
assertWellFormed(IsName(fontName), 'invalid font name');
fontName = fontName.name.replace(/[\+,\-]/g, '_');
@ -5106,7 +5106,7 @@ var CanvasGraphics = (function() {
var inverseDecode = !!imageObj.decode && imageObj.decode[0] > 0;
imageObj.applyStencilMask(pixels, inverseDecode);
} else
imageObj.fillRgbaBuffer(pixels);
imageObj.fillRgbaBuffer(pixels, imageObj.decode);
tmpCtx.putImageData(imgData, 0, 0);
ctx.drawImage(tmpCanvas, 0, -h);
@ -5901,7 +5901,7 @@ var PDFImage = (function() {
};
constructor.prototype = {
getComponents: function getComponents(buffer) {
getComponents: function getComponents(buffer, decodeMap) {
var bpc = this.bpc;
if (bpc == 8)
return buffer;
@ -5915,6 +5915,11 @@ var PDFImage = (function() {
var output = new Uint8Array(length);
if (bpc == 1) {
var valueZero = 0, valueOne = 255;
if (decodeMap) {
valueZero = decodeMap[0] ? 255 : 0;
valueOne = decodeMap[1] ? 255 : 0;
}
var rowComps = width * numComps;
var mask = 0;
var buf = 0;
@ -5932,13 +5937,11 @@ var PDFImage = (function() {
mask = 128;
}
var t = buf & mask;
if (t == 0)
output[i] = 0;
else
output[i] = 255;
output[i] = !(buf & mask) ? valueZero : valueOne;
}
} else {
if (decodeMap != null)
TODO('interpolate component values');
var rowComps = width * numComps;
var bits = 0;
var buf = 0;
@ -6007,7 +6010,7 @@ var PDFImage = (function() {
}
}
},
fillRgbaBuffer: function fillRgbaBuffer(buffer) {
fillRgbaBuffer: function fillRgbaBuffer(buffer, decodeMap) {
var numComps = this.numComps;
var width = this.width;
var height = this.height;
@ -6017,7 +6020,8 @@ var PDFImage = (function() {
var rowBytes = (width * numComps * bpc + 7) >> 3;
var imgArray = this.image.getBytes(height * rowBytes);
var comps = this.colorSpace.getRgbBuffer(this.getComponents(imgArray));
var comps = this.colorSpace.getRgbBuffer(
this.getComponents(imgArray, decodeMap));
var compsPos = 0;
var opacity = this.getOpacity();
var opacityPos = 0;