此问题与此主题的许多现有问题类似,但不完全相同,包括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的错误消息如下:
Uncaught SecurityError:无法在'HTMLCanvasElement'上执行'toDataURL':可能无法导出受污染的画布。
在仅限离线的情况下,哪些选项仍然具有相同的最终结果?
答案 0 :(得分:1)
您可以将所有img.src
指定为内嵌base64编码的网址。
img.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAA ..."
这样所有的imgs都是你的应用程序本地的,并且CORS很满意。