From dc913b989df9fb1720cac6d26aa377b722841218 Mon Sep 17 00:00:00 2001 From: sbarman Date: Mon, 11 Jul 2011 14:09:16 -0700 Subject: [PATCH 1/2] interpolated functions --- pdf.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/pdf.js b/pdf.js index d03bc745d..a96ea8742 100644 --- a/pdf.js +++ b/pdf.js @@ -5365,9 +5365,25 @@ var PDFFunction = (function() { } return array; }, - constructInterpolated: function() { - TODO('unhandled type of function'); - this.func = function () { return [ 255, 105, 180 ]; } + constructInterpolated: function(str, dict) { + var c0 = dict.get('C0') || [0]; + var c1 = dict.get('C1') || [1]; + var n = dict.get('N'); + + var length = c0.length; + var diff = []; + for (var i = 0; i < length; ++i) + diff.push(c1[i] - c0[i]); + + this.func = function (args) { + var x = args[0]; + + var out = []; + for (var j = 0; j < length; ++j) + out.push(c0[j] + (x^n * diff[i])); + + return out; + } }, constructStiched: function() { TODO('unhandled type of function'); From 82f40dd2e5d4af14153dd0c218af025b139a66c7 Mon Sep 17 00:00:00 2001 From: sbarman Date: Mon, 11 Jul 2011 16:44:58 -0700 Subject: [PATCH 2/2] cleanup --- pdf.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pdf.js b/pdf.js index a96ea8742..a4c10fef7 100644 --- a/pdf.js +++ b/pdf.js @@ -5370,6 +5370,9 @@ var PDFFunction = (function() { var c1 = dict.get('C1') || [1]; var n = dict.get('N'); + if (!IsArray(c0) || !IsArray(c1)) + error('Illegal dictionary for interpolated function'); + var length = c0.length; var diff = []; for (var i = 0; i < length; ++i)