3

ローカルで実行する必要がある HTML5 アプリがあります。アプリを実行してキャンバスに画像を読み込もうとすると、Chrome で次のエラー メッセージが表示されます。

キャンバスがクロスオリジン データによって汚染されているため、キャンバスから画像データを取得できません

HTML ドキュメントと画像の両方がローカル フォルダーにあります。これはユーザーに配布されるアプリなので、ローカル サーバーを実行することはできません。Chromeでそのまま実行する必要があります...この問題に関する回答を読みましたが、それらはすべてローカルファイルには関係のないCORSおよびクロスオリジンポリシーに関連しています...

この状況の解決策は何ですか? Chromeでローカルにキャンバスに画像をロードするにはどうすればよいですか?

編集:これはエラーをスローするコードです:

var canvas = Matach.createElement(false, "canvas", false, false);           
var context = canvas.getContext("2d");
context.clearRect(0, 0, canvas.width, canvas.height);
context.globalCompositeOperation = 'source-over';

context.save();
context.drawImage(
    item.img.img, 
    -item.img.width / 2, 
    -item.img.height / 2, 
    item.img.width, 
    item.img.height
);

context.restore();

res = context.getImageData(0, 0, canvas.width, canvas.height);
4

1 に答える 1

-1

クロムの getimagedata にはいくつかのセキュリティ上の問題があります. したがって, これを使用するには, いくつかのターンアラウンドを行う必要があります. これらの投稿を参照して確認すると, 解決策が得られます.

canvas getImageData は、Windows でローカルに実行すると機能しませんか? (セキュリティ例外)

HTML Canvas の getImageData() が設定した値とまったく同じ値を返さないのはなぜですか?

于 2013-02-26T11:51:26.333 に答える