|
|
|
@ -4331,7 +4331,7 @@ var PartialEvaluator = (function() {
@@ -4331,7 +4331,7 @@ var PartialEvaluator = (function() {
|
|
|
|
|
var startRange = tokens[j]; |
|
|
|
|
var endRange = tokens[j + 1]; |
|
|
|
|
var code = tokens[j + 2]; |
|
|
|
|
while(startRange < endRange) { |
|
|
|
|
while (startRange < endRange) { |
|
|
|
|
encodingMap[startRange] = code++; |
|
|
|
|
++startRange; |
|
|
|
|
} |
|
|
|
@ -4365,9 +4365,9 @@ var PartialEvaluator = (function() {
@@ -4365,9 +4365,9 @@ var PartialEvaluator = (function() {
|
|
|
|
|
case 0x5D: |
|
|
|
|
// collect array items
|
|
|
|
|
var items = [], item; |
|
|
|
|
while (tokens.length && (item = tokens.pop()) != beginArrayToken) { |
|
|
|
|
while (tokens.length && |
|
|
|
|
(item = tokens.pop()) != beginArrayToken) |
|
|
|
|
items.unshift(item); |
|
|
|
|
} |
|
|
|
|
tokens.push(items); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
@ -5359,9 +5359,10 @@ var SeparationCS = (function() {
@@ -5359,9 +5359,10 @@ var SeparationCS = (function() {
|
|
|
|
|
var tinted = this.tintFn.func(color); |
|
|
|
|
return this.base.getRgb(tinted); |
|
|
|
|
}, |
|
|
|
|
getRgbBuffer: function sepcs_getRgbBuffer(input) { |
|
|
|
|
getRgbBuffer: function sepcs_getRgbBuffer(input, bits) { |
|
|
|
|
var tintFn = this.tintFn; |
|
|
|
|
var base = this.base; |
|
|
|
|
var scale = 1 / ((1 << bits) - 1); |
|
|
|
|
|
|
|
|
|
var length = 3 * input.length; |
|
|
|
|
var pos = 0; |
|
|
|
@ -5369,12 +5370,12 @@ var SeparationCS = (function() {
@@ -5369,12 +5370,12 @@ var SeparationCS = (function() {
|
|
|
|
|
var numComps = base.numComps; |
|
|
|
|
var baseBuf = new Uint8Array(numComps * input.length); |
|
|
|
|
for (var i = 0, ii = input.length; i < ii; ++i) { |
|
|
|
|
var scaled = input[i] / 255; |
|
|
|
|
var scaled = input[i] * scale; |
|
|
|
|
var tinted = tintFn.func([scaled]); |
|
|
|
|
for (var j = 0; j < numComps; ++j) |
|
|
|
|
baseBuf[pos++] = 255 * tinted[j]; |
|
|
|
|
} |
|
|
|
|
return base.getRgbBuffer(baseBuf); |
|
|
|
|
return base.getRgbBuffer(baseBuf, 8); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
@ -5443,7 +5444,7 @@ var IndexedCS = (function() {
@@ -5443,7 +5444,7 @@ var IndexedCS = (function() {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return base.getRgbBuffer(baseBuf); |
|
|
|
|
return base.getRgbBuffer(baseBuf, 8); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
return constructor; |
|
|
|
@ -5461,11 +5462,12 @@ var DeviceGrayCS = (function() {
@@ -5461,11 +5462,12 @@ var DeviceGrayCS = (function() {
|
|
|
|
|
var c = color[0]; |
|
|
|
|
return [c, c, c]; |
|
|
|
|
}, |
|
|
|
|
getRgbBuffer: function graycs_getRgbBuffer(input) { |
|
|
|
|
getRgbBuffer: function graycs_getRgbBuffer(input, bits) { |
|
|
|
|
var scale = 255 / ((1 << bits) - 1); |
|
|
|
|
var length = input.length * 3; |
|
|
|
|
var rgbBuf = new Uint8Array(length); |
|
|
|
|
for (var i = 0, j = 0; i < length; ++i) { |
|
|
|
|
var c = input[i]; |
|
|
|
|
var c = (scale * input[i]) | 0; |
|
|
|
|
rgbBuf[j++] = c; |
|
|
|
|
rgbBuf[j++] = c; |
|
|
|
|
rgbBuf[j++] = c; |
|
|
|
@ -5477,7 +5479,7 @@ var DeviceGrayCS = (function() {
@@ -5477,7 +5479,7 @@ var DeviceGrayCS = (function() {
|
|
|
|
|
})(); |
|
|
|
|
|
|
|
|
|
var DeviceRgbCS = (function() { |
|
|
|
|
function constructor() { |
|
|
|
|
function constructor(bits) { |
|
|
|
|
this.name = 'DeviceRGB'; |
|
|
|
|
this.numComps = 3; |
|
|
|
|
this.defaultColor = [0, 0, 0]; |
|
|
|
@ -5486,8 +5488,15 @@ var DeviceRgbCS = (function() {
@@ -5486,8 +5488,15 @@ var DeviceRgbCS = (function() {
|
|
|
|
|
getRgb: function rgbcs_getRgb(color) { |
|
|
|
|
return color; |
|
|
|
|
}, |
|
|
|
|
getRgbBuffer: function rgbcs_getRgbBuffer(input) { |
|
|
|
|
return input; |
|
|
|
|
getRgbBuffer: function rgbcs_getRgbBuffer(input, bits) { |
|
|
|
|
if (bits == 8) |
|
|
|
|
return input; |
|
|
|
|
var scale = 255 / ((1 << bits) - 1); |
|
|
|
|
var i, length = input.length; |
|
|
|
|
var rgbBuf = new Uint8Array(length); |
|
|
|
|
for (i = 0; i < length; ++i) |
|
|
|
|
rgbBuf[i] = (scale * input[i]) | 0; |
|
|
|
|
return rgbBuf; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
return constructor; |
|
|
|
@ -5554,7 +5563,8 @@ var DeviceCmykCS = (function() {
@@ -5554,7 +5563,8 @@ var DeviceCmykCS = (function() {
|
|
|
|
|
|
|
|
|
|
return [r, g, b]; |
|
|
|
|
}, |
|
|
|
|
getRgbBuffer: function cmykcs_getRgbBuffer(colorBuf) { |
|
|
|
|
getRgbBuffer: function cmykcs_getRgbBuffer(colorBuf, bits) { |
|
|
|
|
var scale = 1 / ((1 << bits) - 1); |
|
|
|
|
var length = colorBuf.length / 4; |
|
|
|
|
var rgbBuf = new Uint8Array(length * 3); |
|
|
|
|
var rgbBufPos = 0; |
|
|
|
@ -5563,7 +5573,7 @@ var DeviceCmykCS = (function() {
@@ -5563,7 +5573,7 @@ var DeviceCmykCS = (function() {
|
|
|
|
|
for (var i = 0; i < length; i++) { |
|
|
|
|
var cmyk = []; |
|
|
|
|
for (var j = 0; j < 4; ++j) |
|
|
|
|
cmyk.push(colorBuf[colorBufPos++] / 255); |
|
|
|
|
cmyk.push(scale * colorBuf[colorBufPos++]); |
|
|
|
|
|
|
|
|
|
var rgb = this.getRgb(cmyk); |
|
|
|
|
for (var j = 0; j < 3; ++j) |
|
|
|
@ -5946,13 +5956,14 @@ var PDFImage = (function() {
@@ -5946,13 +5956,14 @@ var PDFImage = (function() {
|
|
|
|
|
|
|
|
|
|
var length = width * height; |
|
|
|
|
var bufferPos = 0; |
|
|
|
|
var output = new Uint8Array(length); |
|
|
|
|
var output = bpc <= 8 ? new Uint8Array(length) : |
|
|
|
|
bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length); |
|
|
|
|
|
|
|
|
|
if (bpc == 1) { |
|
|
|
|
var valueZero = 0, valueOne = 255; |
|
|
|
|
var valueZero = 0, valueOne = 1; |
|
|
|
|
if (decodeMap) { |
|
|
|
|
valueZero = decodeMap[0] ? 255 : 0; |
|
|
|
|
valueOne = decodeMap[1] ? 255 : 0; |
|
|
|
|
valueZero = decodeMap[0] ? 1 : 0; |
|
|
|
|
valueOne = decodeMap[1] ? 1 : 0; |
|
|
|
|
} |
|
|
|
|
var rowComps = width * numComps; |
|
|
|
|
var mask = 0; |
|
|
|
@ -5977,25 +5988,22 @@ var PDFImage = (function() {
@@ -5977,25 +5988,22 @@ var PDFImage = (function() {
|
|
|
|
|
if (decodeMap != null) |
|
|
|
|
TODO('interpolate component values'); |
|
|
|
|
var rowComps = width * numComps; |
|
|
|
|
var bits = 0; |
|
|
|
|
var buf = 0; |
|
|
|
|
|
|
|
|
|
var bits, buf; |
|
|
|
|
for (var i = 0, ii = length; i < ii; ++i) { |
|
|
|
|
if (i % rowComps == 0) { |
|
|
|
|
buf = 0; |
|
|
|
|
bits = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
while (bits < bpc) { |
|
|
|
|
buf = (buf << 8) | buffer[bufferPos++]; |
|
|
|
|
bits += 8; |
|
|
|
|
} |
|
|
|
|
var remainingBits = bits - bpc; |
|
|
|
|
var ret = buf >> remainingBits; |
|
|
|
|
|
|
|
|
|
if (i % rowComps == 0) { |
|
|
|
|
buf = 0; |
|
|
|
|
bits = 0; |
|
|
|
|
} else { |
|
|
|
|
buf = buf & ((1 << remainingBits) - 1); |
|
|
|
|
bits = remainingBits; |
|
|
|
|
} |
|
|
|
|
output[i] = Math.round(255 * ret / ((1 << bpc) - 1)); |
|
|
|
|
var remainingBits = bits - bpc; |
|
|
|
|
output[i] = buf >> remainingBits; |
|
|
|
|
buf = buf & ((1 << remainingBits) - 1); |
|
|
|
|
bits = remainingBits; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return output; |
|
|
|
@ -6055,7 +6063,7 @@ var PDFImage = (function() {
@@ -6055,7 +6063,7 @@ var PDFImage = (function() {
|
|
|
|
|
var imgArray = this.image.getBytes(height * rowBytes); |
|
|
|
|
|
|
|
|
|
var comps = this.colorSpace.getRgbBuffer( |
|
|
|
|
this.getComponents(imgArray, decodeMap)); |
|
|
|
|
this.getComponents(imgArray, decodeMap), bpc); |
|
|
|
|
var compsPos = 0; |
|
|
|
|
var opacity = this.getOpacity(); |
|
|
|
|
var opacityPos = 0; |
|
|
|
|