【发布时间】:2016-07-31 02:15:36
【问题描述】:
我正在使用 canvg 库将 d3 svg 对象转换为画布并将其显示为图像 (png)。
生成的图像具有透明背景,这不是我想要的。我需要这个有白色背景的。
所以我尝试设置 svg 元素的背景颜色。查看 svg 元素时很好,但转换后的图像仍然是透明的。 我也尝试过改变画布对象的背景,但这也不起作用。
第一种方法(svg):
var svg = d3.select(".chart").append("svg").attr("style","background: white;")...
第二次接近(画布):
canvg(document.getElementById('canvas'), $("#chart").html());
var canvas = document.getElementById('canvas');
canvas.style.background = 'white';
var img = canvas.toDataURL('image/png');
document.write('<img src="' + img + '"/>');
有谁知道,我必须在哪个对象上设置背景颜色,以便在 png 图像中正确转换它?
编辑:根据 ThisOneGuys 回答中提到的信息,我找到了这个解决方案。
var svg = d3.select(".chart").append("svg") ...
svg.append("rect")
.attr("width", "100%")
.attr("height", "100%")
.attr("fill", "white");
使用附加的矩形,我得到了我需要的东西:)
【问题讨论】:
标签: javascript canvas d3.js svg