commit 77fc9827f5476c949e5222527bb77b4687249981
parent 3cef5ec336251964af8b895913ceb2ca11ccfd86
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Tue, 28 Mar 2017 01:53:16 +0300
Revert "Revert "Revert "[print] use less memory when blending tracks"""
Do not use: it hangs in firefox
This reverts commit 0bbb43617d445b17a345a0a27be8c445e1417ca0.
Diffstat:
1 file changed, 26 insertions(+), 35 deletions(-)
diff --git a/src/lib/leaflet.control.printPages/map-render.js b/src/lib/leaflet.control.printPages/map-render.js
@@ -59,44 +59,35 @@ function getLayersForPrint(map, xhrQueue) {
 }
 
 function blendMultiplyCanvas(src, dest) {
-    if (src.width !== dest.width || src.height !== dest.height) {
-        throw new Error('Canvas size mismatch');
-    }
-    const height = src.height;
-    let srcContext = src.getContext('2d');
-    let destContext = dest.getContext('2d');
-    for (let y = 0; y < height; y++) {
-        let s_data = srcContext.getImageData(0, y, src.width, 1).data;
-        let d_image_data = destContext.getImageData(0, y, src.width, 1);
-        let d_data = d_image_data.data;
-        let data_length = s_data.length,
-            sr, sg, sb, sa,
-            dr, dg, db,
-            l;
-            for (let i = 0; i < data_length; i += 4) {
-                sa = s_data[i + 3];
-                if (sa) {
-                    sr = s_data[i];
-                    sg = s_data[i + 1];
-                    sb = s_data[i + 2];
-                    dr = d_data[i];
-                    dg = d_data[i + 1];
-                    db = d_data[i + 2];
-
-                    l = (dr + dg + db) / 3;
-                    l = l / 255 * 192 + 63;
-                    dr = sr / 255 * l;
-                    dg = sg / 255 * l;
-                    db = sb / 255 * l;
+    var s_data = src.getContext('2d').getImageData(0, 0, src.width, src.height).data;
+    var d_image_data = dest.getContext('2d').getImageData(0, 0, src.width, src.height);
+    var d_data = d_image_data.data;
+    var data_length = s_data.length,
+        sr, sg, sb, sa,
+        dr, dg, db,
+        l;
+    for (var i = 0; i < data_length; i += 4) {
+        sa = s_data[i + 3];
+        if (sa) {
+            sr = s_data[i];
+            sg = s_data[i + 1];
+            sb = s_data[i + 2];
+            dr = d_data[i];
+            dg = d_data[i + 1];
+            db = d_data[i + 2];
 
-                    d_data[i] = dr;
-                    d_data[i + 1] = dg;
-                    d_data[i + 2] = db;
-                }
-            }
-            dest.getContext('2d').putImageData(d_image_data, 0, y);
+            l = (dr + dg + db) / 3;
+            l = l / 255 * 192 + 63;
+            dr = sr / 255 * l;
+            dg = sg / 255 * l;
+            db = sb / 255 * l;
 
+            d_data[i] = dr;
+            d_data[i + 1] = dg;
+            d_data[i + 2] = db;
+        }
     }
+    dest.getContext('2d').putImageData(d_image_data, 0, 0);
 }
 
 class PageComposer {