キャンバスをJavaScriptで画像に変換したい場合は、canvas.toDataURL("image/png");
を入力するとエラーSecurityError: The operation is insecure
が返されます。このprobmenを解決するために私を助けてください。キャンバスをJavaScriptで画像に変換する
ありがとうございます。
キャンバスをJavaScriptで画像に変換したい場合は、canvas.toDataURL("image/png");
を入力するとエラーSecurityError: The operation is insecure
が返されます。このprobmenを解決するために私を助けてください。キャンバスをJavaScriptで画像に変換する
ありがとうございます。
あなたは正しい考えを持っている、そしてそれは、次のような非常に単純な例で動作します:
var can = document.getElementById('canvas1');
var ctx = can.getContext('2d');
ctx.fillRect(50,50,50,50);
var img = new Image();
img.src = can.toDataURL();
document.body.appendChild(img);
http://jsfiddle.net/simonsarris/vgmFN/
をしかし、あなたはあなたのキャンバスを「汚す」している場合、それが問題となります。これは、キャンバスに異なる原点からのイメージを描画することによって行われます。たとえば、キャンバスがwww.example.comでホストされていて、www.wikipedia.orgの画像を使用している場合、キャンバスのorigin-cleanフラグは内部でfalse
に設定されます。原点クリーンフラグがfalse
に設定されると
toDataURL
または
getImageData
呼び出すことが許可されていません。
ローカルで作業している場合(file://)、描画されたイメージはフラグをオフにします。これによりデバッグが煩わしいものになりますが、Chromeではフラグ--allow-file-access-from-files
で開始することができます。
+1クロームの旗のために、私はそれについて聞いたことはありませんでしたが、多くの場合、絶対に便利です。ありがとう!! – Adrian
これは私のためにこの答えで
//after creating your plot do
var imgData = $('#chart1').jqplotToImageStr({}); // given the div id of your plot, get the img data
var imgElem = $('<img/>').attr('src',imgData); // create an img and add the data to it
$('#imgChart1').append(imgElem); //
この回答は、jqPlotを使用しない質問には関係なく、画像データを文字列に変換しようとするとエラーが表示されます。あなたの例では、問題を再現するのに必要な条件(つまり、クロスドメインイメージリソース)がないため、問題を解決しています。 – apsillers
ルックを働きました。 http://stackoverflow.com/questions/7279438/why-is-this-todataurl-line-a-security-error –
これはクエリとは関係ありません – shabunc
キャンバスイメージでは他のドメインから読み込んでエラーが発生します。イメージそれは私のためにうまくいきます。 – mmpatel009