无法图表保存为图像

问题描述:

我已经写一个函数来保存为image.Below我所提到的代码,我已写入的图表: HTML:无法图表保存为图像

<div> <span id="save" onclick="javascript:saveChart1();" style="height:10px;width:40px; color:#000;"> comment</span></div> 
<div id="chart_load"></div> 
<div id="chart_save"> 
    <canvas id="chart_area" height="300px" width="415px"></canvas> 
</div> 

Javescript:

function saveChart1() 
{ 

      var outcan=document.getElementById("chart_area"); 
       var obj=document.getElementsByTagName("canvas");     
       var ctx=outcan.getContext("2d");   
       ctx.drawImage(obj[1],0,0);   
       html2canvas($("#chart_save"), { 
         onrendered: function(canvas) { 
        var a = document.createElement('a'); 
     // toDataURL defaults to png, so we need to request a jpeg, then convert for file download. 
     a.href = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 
     a.download = 'ss.jpg'; 
     a.click(); 

        } 
         }); 
} 

当我点击保存按钮,然后得到下面提到的错误:

Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(CSSImageValue or HTMLImageElement or SVGImageElement or HTMLVideoElement or HTMLCanvasElement or ImageBitmap or OffscreenCanvas)' 
    at saveChart1 (generatedContent:310) 
    at HTMLSpanElement.onclick 

任何人都可以建议我w我在这里做错了。

+0

你能提供的jsfiddle或codepen.io工作的例子吗? – Difster

+0

不应该使用'obj [0]'? –

+0

@ArnoldSchrijver:如果我使用obj [0],那么我得到空白图像? – sam140

试试这个

var obj = document.getElementsByTagName("canvas"); 
html2canvas(document.getElementById("target"), { 
    onrendered: function (canvas) { 
     var a = document.createElement('a'); 
     // toDataURL defaults to png, so we need to request a jpeg, then convert for file download. 
     a.href = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 
     a.download = 'ss.jpg'; 
     a.click(); 
    } 
}); 

Working example

+0

获取下面提到的错误:Uncaught TypeError:html2canvas(...)。然后不是函数 at saveChart1 (generatedContent:302) 在HTMLSpanElement.onclick(generatedContent:85) html2canvas.js:2769未捕获的类型错误:canvas.getContext不在html2canvas.js函数 :2769 在Object._html2canvas.Renderer(html2canvas.js: 2552) 在Object.options.complete(html2canvas.js:2667) 在启动(html2canvas.js:2082) 在Object._html2canvas.Preload(html2canvas.js:2368) 在html2canvas.js:2678 – sam140

+0

你想转换你的图表int o image对吗?检查我更新的答案 – Manoj

+0

图表不是渲染正确..例如,如果我想导出条形图作为图像,那么我只得到x和ya轴的值没有else.even没有酒吧创建.. – sam140