URLからBase64で画像をエンコードしようとしています。Base64で画像をエンコードすると正しく表示されます。レスポンスはnilです
function getBase64Image(url) {
var img = new Image(),
response = '';
img.setAttribute('crossOrigin', 'anonymous');
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = this.width;
canvas.height = this.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(this, 0, 0);
var dataURL = canvas.toDataURL('image/png');
response = dataURL;
alert(response);
};
img.src = url;
return response;
}
alert()
が正常に動作しますが、応答はnilです:
私はそうのような応答をlog
場合は、スクリーンショットのコンソールで見ることができるが、(それがスクリーンショットに二回行われています)それは何も返しません:
console.log(getBase64Image('<%= asset_path "test.jpg" %>'));
明らかに、アラートにはエンコードがあるため、イメージを読み取ることができます。私は何が欠けていますか?
更新
関連JSFiddle:https://jsfiddle.net/guxzxq20/3/
、私はデータのみ '持っている:、'しかし帰国します。 –
あなたのコードをjsfiddleにアップロードできますか?私はあなたを助けることができます。 – Ted
確かに、質問をリンクで更新します。 –