Canvas (別のドメインの画像を含む) を Image に変換できるようにしたいと考えています。これには、CORS対応の画像を使用する必要があることを理解しました(キャンバスに.toDataURL()を使用できるようにするため)。問題は、CORS 対応のイメージを作成する方法です。次のコードは、最初の行でエラーをスローします: Cross-Origin Resource Sharing ポリシーによって拒否された Cross-Origin image load.
<html>
<body>
<input type="button" id="button" value="convert" onclick="onClick()" /></br>
<img id="output" />
<script>
var source = "https://www.gravatar.com/avatar/7b67c827ee1671ba3b43f4aebf6794fb?s=128&d=identicon&r=PG";
onClick = function () {
var img = document.createElement('img');
img.onload = function (e) {
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
var url = canvas.toDataURL();
var output = document.getElementById("output");
output.src = url;
};
img.crossOrigin = 'anonymous';
img.src = source;
};
</script>
</body>
</html>