-1

canvg プラグインを使用して 1 つのキャンバスを作成しました。

次に、[canvg で作成] ctx.drawimage() を使用してキャンバスの下に別の背景画像を配置します。

私は試した 。

提案してください。

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";
4

1 に答える 1

0

これは機能しています。使用された ctx.drawSvg(svgString,0,0,500,500); 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';
于 2016-09-28T11:30:13.093 に答える