Chrome:受污染的画布可能无法导出;离线专用应用

时间:2016-07-08 21:37:42

标签: javascript google-chrome firefox html5-canvas

此问题与此主题的许多现有问题类似,但不完全相同,包括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':可能无法导出受污染的画布。

在仅限离线的情况下,哪些选项仍然具有相同的最终结果?

1 个答案:

答案 0 :(得分:1)

您可以将所有img.src指定为内嵌base64编码的网址。

img.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAA ..."

这样所有的imgs都是你的应用程序本地的,并且CORS很满意。