MENU

playwright获取图片base64时出现js报错:Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported

October 25, 2022 • 数据采集与数据分析(python)

出现这个报错的原因是:由于浏览器的安全考虑,如果在使用canvas绘图的过程中,使用到了外域的图片资源,那么在toDataURL()时会抛出安全异常。
解决办法:设置图片属性:crossOrigin为anonymous
img.setAttribute('crossOrigin', 'anonymous');

完整的上下文参考:

//图片
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
img.src = url;
// 视频
var video = new Video();
video.setAttribute('crossOrigin', 'anonymous');
video.src = url;