Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
canvas toDataUrl()返回黑色图像_Canvas_Canvg - Fatal编程技术网

canvas toDataUrl()返回黑色图像

canvas toDataUrl()返回黑色图像,canvas,canvg,Canvas,Canvg,我正在使用canvg基于svg创建一个画布,然后通过画布下载一个图像 下面是使用svg创建画布的代码 //创建画布 var myCanvas = document.createElement("CANVAS"); canvg(myCanvas, res[0],{ ignoreMouse: true, ignoreAnimation: true , ignoreClear: true }); //Downloading the image var uri = canvas.

我正在使用canvg基于svg创建一个画布,然后通过画布下载一个图像

下面是使用svg创建画布的代码

//创建画布

var myCanvas = document.createElement("CANVAS");
canvg(myCanvas, res[0],{ ignoreMouse: true, ignoreAnimation: true , ignoreClear: true }); 



     //Downloading the image


 var uri = canvas.toDataURL("image/jpeg");
           var link = document.createElement("a");
            link.download = name;
            link.href = uri;
            document.body.appendChild(link);
            link.click();

获取的图像部分为黑色背景。请提供帮助。

将svg图形转换为jpeg听起来不是一个好主意,这显然取决于图形,但大多数情况下png将提供更小的输出文件大小,当然质量更好。我发现了一个问题,并解决了它。我将svg转换为画布,将svg元素作为字符串,但svg的某些部分应用了外部css,因此在从DOM获取标记时,我丢失了css属性,并导致部分黑色图像。刚刚添加了缺少的CSS作为内联CSS,解决了这个问题//一行代码修复了一切$(“.c3图表行”).find(“.c3行”).css(“fill”,“none”);谢谢