2017-04-13 2 views
1

キャンバスをイメージに変換するには?私は今、私は私がダウンロードできる画像に変換したい、キャンバスにページ全体を変換しています

html2canvas(document.body, { 
    allowTaint: true, 
    onrendered: function(canvas) { 
     document.body.appendChild(canvas).setAttribute("id", "canvas"); 
     var canvas = document.getElementById("canvas"); 
     var img = canvas.toDataURL("image/png"); 
     img.setAttribute('crossOrigin', 'anonymous'); 
     document.write('<img src="'+img+'"/>'); 
    } 
    }); 

動作しますが、私は、コンソールでこのエラーを取得し、画像が

が作成されていないことを

未知(約束)DOMException: 'toDataURL'を実行できませんでした。 'HTMLCanvasElement':汚染されたキャンバスをエクスポートできません。あなたはあなたが必要としなかったすべての過剰なものを持っていた

<a id="download" 
    onclick="var download = document.getElementById('download'); 
    download.href = document.getElementById('canvasElementId').toDataURL(); 
    download.download='imageName.png'"> 
Save Canvas Image</a> 

、それはあなたが右クリックして保存することで、余分なステップをしなければならない画像が生成されます。

+0

base64画像データをエンコードする - > 'img' –

+0

@EricSo上記のコードに基づいて答えをもっと詳しく教えてください。 – downFast

+0

あなたは、現在の画面をライブラリ 'html2canvas'でキャプチャしようとしていると思います。ブラウザはキャプチャされたイメージをローカルドメインとして定義していたためです。セキュリティ上の理由から、ブラウザは 'toDataURL' APIを使用してイメージをエクスポートすることはできません。 –

答えて

0

これを試してみてください。これは簡単な方法で、より効果的です。

「汚染されたキャンバスをエクスポートできません」というエラーが表示された場合、機能しない場合やアプリケーションで使用できる場合は、汚染を取り除くことができます。

+0

Uncaught DOMException: 'HTMLCanvasElement'で 'toDataURL'を実行できませんでした:汚染されたキャンバスをエクスポートできません。 – downFast

関連する問題