2017-07-31 4 views
0

画像としてチャートを保存することができません: HTML:私は私が書かれているコードを記載しているimage.Belowとしてチャートを保存する機能を書かれている

<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 

ここで私は間違っています。

+0

あなたはjsfiddleまたはcodepen.ioに取り組ん例を提供することができます試してみてください? – Difster

+0

'obj [0]'を使うべきではありませんか? –

+0

@ArnoldSchrijver:obj [0]を使用すると空白の画像が表示されますか? – sam140

答えて

0

この

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(...)。は関数ではありません saveChart1 (generatedContent:302)HTMLSpanElement.onclick(generatedContent:85)で html2canvas.js:2769キャッチされない例外TypeError:Object._html2canvas.Renderer(html2canvas.jsで2769 :canvas.getContextはhtml2canvas.jsで機能 ありません。 Object.options.completeで2552) (html2canvas.js:2667) 開始時(html2canvas.js:2082)Object._html2canvas.Preloadで (html2canvas.js:html2canvas.jsで2368) :2678 – sam140

+0

あなたが欲しいですあなたのチャートをintに変換するイメージ右?私の更新された答えを確認 – Manoj

+0

チャートは適切なレンダリングされていません..たとえば、画像として棒グラフをエクスポートしたい場合は、xとya軸の値を取得しています。else.even no barは作成されていません.. – sam140

関連する問題