小编Mar*_*ios的帖子

将图形从svg(d3.js)导出到jpg时的黑色区域

我试图使用javascript将图形从SVG(通过d3.js获得)导出到JPG图像.

事实是最终图像没有正确显示图像,但它绘制了一个黑色区域,包围图形的线条.这是他们的两张照片.在页面的顶部表示SVG,而描绘最终的JPG图像.

我写的代码如下:

    root_node = d3.select("svg")
      .attr("version", 1.1)
      .attr("xmlns", "http://www.w3.org/2000/svg")
      .node();

    s_xml = (new XMLSerializer).serializeToString(root_node);

    var imgsrc = 'data:image/svg+xml,'+ s_xml;
    var img = '<img src="'+imgsrc+'">';

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

    canvas.width = 1600;
    canvas.height = 600;

    context = canvas.getContext("2d");

    var image = new Image;
    image.src = imgsrc;
    image.onload = function() {
        context.drawImage(image, 0, 0);
        context.fillStyle = 'white';
        context.globalCompositeOperation = "destination-over";
        context.fillRect(0, 0, canvas.width, canvas.height);

        var canvasdata = canvas.toDataURL("image/jpeg");
        var jpgimg = '<img src="'+canvasdata+'">';
        d3.select("body").append("svgdataurl").html(jpgimg);

    });
Run Code Online (Sandbox Code Playgroud)

谁知道颜色转换错误的原因?提前致谢!

svg d3.js todataurl

1
推荐指数
1
解决办法
1206
查看次数

标签 统计

d3.js ×1

svg ×1

todataurl ×1