gpt4 book ai didi

svg - 将图形从 svg (d3.js) 导出为 jpg 时出现黑色区域

转载 作者:行者123 更新时间:2023-12-02 08:32:59 26 4
gpt4 key购买 nike

我正在尝试使用 javascript 将图形从 SVG(通过 d3.js 获得)导出为 JPG 图像。

事实是最终图像没有正确显示图片,而是绘制了一个包围图形线条的黑色区域。 Here他们是两个图像。页面顶部显示 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);

});

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

最佳答案

你必须直接在D3代码中给出折线图的CSS。

lineChart.append("path")
.attr("class", "lineChart")
.attr("stroke-width", 1)
.attr("fill","none")
.attr("d", valueline(lineChartData));

关于svg - 将图形从 svg (d3.js) 导出为 jpg 时出现黑色区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24825145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com