2017-01-02 15 views
0

Я занимаюсь этим немного, но я не могу заставить его работать. Onclick to result png image пуст. См. Код ниже ....Попытка конвертировать SVG в PNG Изображение

function svgToCanvas (targetElem,fileName) { 
    var nodesToRecover = []; 
    var nodesToRemove = []; 

    var svgElem = targetElem.find('svg'); 

    console.log(svgElem); 

    svgElem.each(function(index, node) { 
     var parentNode = node.parentNode; 
     var svg = parentNode.innerHTML; 

     var canvas = document.createElement('canvas'); 

     canvg(canvas, svg); 

     nodesToRecover.push({ 
      parent: parentNode, 
      child: node 
     }); 

     parentNode.removeChild(node); 

     nodesToRemove.push({ 
      parent: parentNode, 
      child: canvas 
     }); 

     parentNode.appendChild(canvas); 
    }); 

    html2canvas(targetElem, { 
     allowTaint: true, 
     onrendered: function(canvas) { 

      var theName = fileName + ".png"; 
      prev_img = theName; 

      var a = document.createElement('a'); 
      a.href = canvas.toDataURL(); 
      a.download = theName; 
      a.click(); 

     } 

    }); 

} 

#Running the function.. 
var theDiv = $('#divContainingSVG'); 
var fileNm = "imageName"; 
svgToCanvas(theDiv, fileNm); 

Не уверен, куда идти дальше. Мне просто нужно преобразовать изображение в png, а затем сохранить его на сервере. При тестировании версии загрузки результат png пуст. Обратите внимание, что я использую ... canvg.js (включая rgbcolor.js) и html2canvas.svg.js

Заранее благодарен!

ответ

0

На самом деле выясняется, что эта функция работает нормально. Проблема заключалась в конфликте с другой функцией, которая была включена, по ошибке, для получения svg.