]> git.parisson.com Git - pdf.js.git/commitdiff
fix performance issue with SeparationCS
authorsbarman <sbarman@L3CWZ5T.(none)>
Thu, 7 Jul 2011 18:46:52 +0000 (11:46 -0700)
committersbarman <sbarman@L3CWZ5T.(none)>
Thu, 7 Jul 2011 18:46:52 +0000 (11:46 -0700)
pdf.js

diff --git a/pdf.js b/pdf.js
index d28a749455db3b8b1b8daa15b20916ffd4221e07..78ac9eb3b79ca7eccb3bd82e69e1fc67178ea553 100644 (file)
--- a/pdf.js
+++ b/pdf.js
@@ -4658,15 +4658,16 @@ var SeparationCS = (function() {
       var rgbBuf = new Uint8Array(length);
       var pos = 0;
 
+      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 tinted = tintFn.func([scaled]);
-        var rgb = base.getRgb(tinted);
-        for (var j = 0; j < 3; ++j)
-          rgbBuf[pos++] = Math.round(255 * rgb[j]);
+        for (var j = 0; j < numComps; ++j)
+          baseBuf[pos++] = 255 * tinted[j];
       }
+      return base.getRgbBuffer(baseBuf);
 
-      return rgbBuf;
     }
   };
 
@@ -4856,7 +4857,7 @@ var DeviceCmykCS = (function() {
 
         var rgb = this.getRgb(cmyk);
         for (var j = 0; j < 3; ++j)
-          rgb[rgbBufPos++] = Math.round(rgb[j] * 255);
+          rgbBuf[rgbBufPos++] = Math.round(rgb[j] * 255);
       }
 
       return rgbBuf;