2016-08-02 17 views
-1

私はFiddleに2つのキャンバスの例があります。キャンバスに画像を追加すると画像としてキャンバスを保存できません

+最初のキャンバスには円があり、保存をクリックするとイメージとして保存できます。

+ 2番目のキャンバスには画像がありますが、保存をクリックすると画像として保存できません。

私はfabric.jsを使用しています。

これはなぜ発生していますか?どうすればイメージとして保存できますか?

////- First Canvas -///// 
 
var canvas1 = new fabric.Canvas('first'); 
 

 
//Added circle to first canvas 
 
var circle = new fabric.Circle({ 
 
    left: 20, 
 
    top: 10, 
 
    radius: 50, 
 
    fill: "#299b71" 
 
}); 
 
canvas1.add(circle); 
 

 
$("#save-first").click(function() { 
 
    window.open(canvas1.toDataURL('png')); 
 
}); 
 

 
////- Second Canvas -///// 
 

 
var canvas2 = new fabric.Canvas('second'); 
 

 
//Added img to second canvas 
 
fabric.Image.fromURL("http://www.socialmediatoday.com/sites/default/files/post_main_images/alltwitter-twitter-bird-logo-white-on-blue_9.png", function(oImg) { 
 
    canvas2.add(oImg); 
 
}); 
 

 
$("#save-second").click(function() { 
 
    window.open(canvas2.toDataURL('png')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.3/fabric.min.js"></script> 
 
<canvas id="first" width="300" height="200"></canvas> 
 
<button id="save-first">Save as img</button> 
 

 
<canvas id="second" width="300" height="200"></canvas> 
 
<button id="save-second">Save as img</button>

答えて

0

これは、クロスドメインスクリプティングの問題です。あなたはTwitterからアセットを読み込んでいます。あなたがローカルassestsを読み込む場合、それは動作します。コンソールの「操作は安全ではありません」というメッセージに注意してください。

+0

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

+0

私が言ったようにコンソール – Norx

+0

で上記のエラーが発生しました。これはクロスサイトスクリプティングの問題です。この質問は重複しています。 Googleの次回エラーメッセージ:http://stackoverflow.com/questions/20424279/canvas-todataurl-securityerror –

関連する問題