mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 07:08:08 +02:00
Make ColorSpace Separation work as long as no IR form is needed for now
This commit is contained in:
parent
fea3388c41
commit
4e3f87b60c
1 changed files with 16 additions and 11 deletions
27
pdf.js
27
pdf.js
|
@ -5596,8 +5596,12 @@ var ColorSpace = (function() {
|
|||
};
|
||||
|
||||
constructor.parse = function colorspace_parse(cs, xref, res) {
|
||||
var IR = constructor.parseToIR(cs, xref, res);
|
||||
return constructor.fromIR(IR);
|
||||
var IR = constructor.parseToIR(cs, xref, res, true);
|
||||
if (!(IR instanceof SeparationCS)) {
|
||||
return constructor.fromIR(IR);
|
||||
} else {
|
||||
return IR
|
||||
}
|
||||
};
|
||||
|
||||
constructor.fromIR = function(raw) {
|
||||
|
@ -5633,7 +5637,7 @@ var ColorSpace = (function() {
|
|||
return null;
|
||||
}
|
||||
|
||||
constructor.parseToIR = function colorspace_parse(cs, xref, res) {
|
||||
constructor.parseToIR = function colorspace_parse(cs, xref, res, parseOnly) {
|
||||
if (IsName(cs)) {
|
||||
var colorSpaces = res.get('ColorSpace');
|
||||
if (IsDict(colorSpaces)) {
|
||||
|
@ -5703,13 +5707,15 @@ var ColorSpace = (function() {
|
|||
var hiVal = cs[2] + 1;
|
||||
var lookup = xref.fetchIfRef(cs[3]);
|
||||
return ["IndexedCS", baseCS, hiVal, lookup];
|
||||
case 'Separation':
|
||||
error("Need to implement IR form for SeparationCS");
|
||||
|
||||
// var name = cs[1];
|
||||
// var alt = ColorSpace.parse(cs[2], xref, res);
|
||||
// var tintFn = new PDFFunction(xref, xref.fetchIfRef(cs[3]));
|
||||
// return new SeparationCS(alt, tintFn);
|
||||
case 'Separation':
|
||||
if (!parseOnly) {
|
||||
error("Need to implement IR form for SeparationCS");
|
||||
} else {
|
||||
var name = cs[1];
|
||||
var alt = ColorSpace.parse(cs[2], xref, res);
|
||||
var tintFn = new PDFFunction(xref, xref.fetchIfRef(cs[3]));
|
||||
return new SeparationCS(alt, tintFn);
|
||||
}
|
||||
case 'Lab':
|
||||
case 'DeviceN':
|
||||
default:
|
||||
|
@ -5756,7 +5762,6 @@ var SeparationCS = (function() {
|
|||
baseBuf[pos++] = 255 * tinted[j];
|
||||
}
|
||||
return base.getRgbBuffer(baseBuf, 8);
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue