【发布时间】:2017-06-06 07:04:57
【问题描述】:
我正在尝试将图像 url 转换为 base64 图像。我找到了我正在尝试使用的this。
我有以下代码:
var imgUrl = 'https://www.google.de/images/srpr/logo11w.png';
let base64image = this.getBase64Image(imgUrl);
console.log(base64image);
和
public getBase64Image(imgUrl) {
var img = new Image();
img.src = imgUrl;
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
但是,它会输出以下内容:
数据:,
我在控制台中收到以下错误:
异常:未捕获(承诺):SecurityError:无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布。 错误:无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布。
我的代码必须不正确。谁能告诉我如何将 url 转换为 base64 图像?
谢谢
更新
我在函数中添加了以下行:
img.crossOrigin = "Anonymous";
这消除了错误,但是,现在我得到以下信息:
数据:,
【问题讨论】:
-
查看控制台上的错误消息 — 错误:无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布。
-
添加了错误信息。感谢您指出这一点。
-
您将此标记为重复,它重复了哪个问题?
-
问题顶部黄色大方框中提到的那个
-
Quentin,我通过设置 'crossOrigin'、'anonymous' 解决了错误消息,请参阅上面的更新。谢谢你。但是,它仍然无法解决我尝试创建 base64Image 的问题。
标签: javascript base64