我正在使用画布预先绘制图片,然后需要使用 Canvas.toDataURL() 将其保存到图像对象,但在 Chrome 上,我收到错误“未捕获的安全错误:无法在“HTMLCanvasElement”上执行“toDataURL”:受污染的画布可能不会被出口。”我需要它在本地工作,但这意味着似乎无法在本地使用 chrome 工作。那么问题来了,即使在本地运行,如何才能从canvas获取数据呢?
附:这在 Firefox 上工作正常,但在 Chrome 上不行
您可能使用的 file:// 不适用于 Chrome(或将来的其他浏览器)。
有两种方法可以解决这个问题:
- 启动 Chrome这个命令行选项 https://stackoverflow.com/questions/18586921/how-to-launch-html-using-chrome-at-allow-file-access-from-files-mode
"C:\PathTo\Chrome.exe" –allow-file-access-from-files
- 在本地计算机上安装一个轻量级 Web 服务器,以便您可以通过 localhost/127.0.0.1 访问该页面,例如Mongoose https://code.google.com/p/mongoose/(或 Apache/LAMP 等)。
从 file:// 协议加载图像被视为违反 CORS,这意味着您将无法从画布中提取像素(toDataURL()
or getImageData()
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)