-1

i have created one canvas by using canvg plugin.

Then i want to put another background image below canvas using ctx.drawimage() [created by canvg].

I tried .

Please suggest.

var svgString = new XMLSerializer().serializeToString(document.querySelector('svg'));

        var canvas = document.getElementById("canvas");
         var DOMURL = self.URL || self.webkitURL || self;
        ctx = canvas.getContext("2d");
    canvg(canvas, svgString, { ignoreMouse: true, ignoreAnimation: true});
     var img1 = new Image();


        img1.onload = function() {

             ctx.drawImage(img1, 136, 136);


            var png = canvas.toDataURL("image/png");
            document.querySelector('#chart').innerHTML = '<img src="'+png+'"/>';
            DOMURL.revokeObjectURL(png);

        };

  img1.src= "chart.png";
Lakin Mohapatra
  • 1,097
  • 11
  • 22

1 Answers1

0

This is working. Used ctx.drawSvg(svgString,0,0,500,500); instead of drawImage

  var svgString = new       XMLSerializer().serializeToString(document.querySelector('svg'));

        var canvas = document.getElementById("canvas");
         var DOMURL = self.URL || self.webkitURL || self;

        var ctx = canvas.getContext("2d");

        var DOMURL = self.URL || self.webkitURL || self;
        var img = new Image();
        //var svg = new Blob([svgString], {type: "image/svg+xml;charset=utf-8"});
        var svg = new Blob([svgString], {type: "image/svg+xml"});
        var url = DOMURL.createObjectURL(svg);


        var png = '';

        var img1 = new Image();



         img1.onload = function(){
           ctx.drawImage(img1, 136, 136);
           ctx.drawSvg(svgString,0,0,500,500);
           var png = canvas.toDataURL("image/png");
            document.querySelector('#chart').innerHTML = '<img src="'+png+'"/>';
            DOMURL.revokeObjectURL(png);
         };
        img1.src = 'chart.png';
Lakin Mohapatra
  • 1,097
  • 11
  • 22