【发布时间】:2016-11-11 13:24:42
【问题描述】:
这个问题与该主题的许多现有问题相似,但并不完全相同,包括Tainted canvases may not be exported。
我正在编写一个仅离线应用程序,它必须保持这种状态并且不能使用本地网络服务器。有没有办法绕过画布上的 CORS 检查,以便将数据复制回基础图像。
这是我正在尝试的代码示例:
var c1 = document.getElementById("tmp1");
var ctx1 = c1.getContext('2d');
var tmpImg1 = document.getElementById("tmpimg1");
ctx1.drawImage(img1, 0, 0, 150, 150);
tmpImg1.src = c1.toDataURL();
Chrome 的错误信息如下:
未捕获的安全错误:无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布。
在仅离线的情况下,哪些选项仍然具有相同的最终结果?
【问题讨论】:
-
将应用程序和图像文件都放在用户的桌面上。
-
@markE 我希望这是一个选项。我有太多图像无法做到这一点。如果它们在同一个文件夹中,但不一定在桌面上,这会起作用吗?
-
我已经有一段时间没有检查同一个文件夹是否适用于所有浏览器了,但过去有些浏览器会抛出 CORS 错误而其他浏览器不会。我已经发布了一个带有替代解决方案的答案。
标签: javascript google-chrome firefox html5-canvas