设置背景图像中的CORS问题

时间:2014-10-16 05:06:49

标签: javascript ruby-on-rails fabricjs

我使用以下代码将图像设置为背景图像:

var img = new Image();
    img.src = "<%=@templates[0][1]%>";
    img.crossOrigin = "anonymous";
    img.onload = function(){
       canvas.setBackgroundImage(img.src, canvas.renderAll.bind(canvas), {
        originX: 'left',
        originY: 'top',
        left: 0,
        top: 0
       });
    };

当我保存画布时,我使用以下代码:

var img = new Image();     img.src = canvas.toDataURL(&#39; image / png&#39;);

var dataURL = canvas.toDataURL();
var blobBin = atob(dataURL.split(',')[1]);
var array = [];
for(var i = 0; i < blobBin.length; i++) {
  array.push(blobBin.charCodeAt(i));
}

我在保存时遇到以下错误:

Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

我用Google搜索但无法理解如何解决它。所以请告诉我解决方案。

先谢谢。

1 个答案:

答案 0 :(得分:0)

据我所知,您应该在设置来源(img.crossOrigin = "anonymous";)之前添加img.src = "<%=@templates[0][1]%>";

那应该解决它。