]> git.parisson.com Git - pdf.js.git/commitdiff
Playing with initial decode map impl.
authorBrendan Dahl <brendan.dahl@gmail.com>
Tue, 13 Dec 2011 16:48:27 +0000 (08:48 -0800)
committerBrendan Dahl <brendan.dahl@gmail.com>
Tue, 13 Dec 2011 16:48:27 +0000 (08:48 -0800)
src/evaluator.js
src/image.js

index edef57f91780c67becab0c075fa03f53c42249f8..5c20c86608c60de788cb365758a5ed9e29399d51 100644 (file)
@@ -227,7 +227,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
               data: new Uint8Array(w * h * 4)
             };
             var pixels = imgData.data;
-            imageObj.fillRgbaBuffer(pixels, imageObj.decode);
+            imageObj.fillRgbaBuffer(pixels);
             handler.send('obj', [objId, 'Image', imgData]);
           }, handler, xref, resources, image, inline);
       }
index 987542c582102512187190d49e2a9dcf75413cf0..8adae50302436cb83232876448d64c85eb194f48 100644 (file)
@@ -104,10 +104,13 @@ var PDFImage = (function PDFImageClosure() {
   };
 
   PDFImage.prototype = {
-    getComponents: function getComponents(buffer, decodeMap) {
+    getComponents: function getComponents(buffer) {
       var bpc = this.bpc;
-      if (bpc == 8)
-        return buffer;
+      var decodeMap = this.decode;
+      //if (decodeMap)
+      //  debugger;
+      //if (bpc == 8)
+      //  return buffer;
 
       var width = this.width;
       var height = this.height;
@@ -160,6 +163,14 @@ var PDFImage = (function PDFImageClosure() {
 
           var remainingBits = bits - bpc;
           output[i] = buf >> remainingBits;
+          if (decodeMap) {
+            var x = output[i];
+            var dmin = decodeMap[0];
+            var dmax = decodeMap[1];
+            var max = Math.pow(2, bpc) - 1;
+            var val = max * (dmin + x * ((dmax - dmin)/(max)));
+            output[i] = val;
+          }
           buf = buf & ((1 << remainingBits) - 1);
           bits = remainingBits;
         }
@@ -210,7 +221,7 @@ var PDFImage = (function PDFImageClosure() {
         }
       }
     },
-    fillRgbaBuffer: function fillRgbaBuffer(buffer, decodeMap) {
+    fillRgbaBuffer: function fillRgbaBuffer(buffer) {
       var numComps = this.numComps;
       var width = this.width;
       var height = this.height;
@@ -221,7 +232,7 @@ var PDFImage = (function PDFImageClosure() {
       var imgArray = this.getImageBytes(height * rowBytes);
 
       var comps = this.colorSpace.getRgbBuffer(
-        this.getComponents(imgArray, decodeMap), bpc);
+        this.getComponents(imgArray), bpc);
       var compsPos = 0;
       var opacity = this.getOpacity();
       var opacityPos = 0;