微信h5图片保存, canvas 将图片转为base64报错

蛰伏已久 蛰伏已久 2018-05-21

接到一个需求,在微信H5中生成一张图片,然后长按保存。

在将canvas转为base64时报错,查了很多文章,基本上大同小异,都没有解决

报错内容1:DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported

报错内容2: the operation is insecure


解决方法:在将图片绘制到canvas之前,设置这个

img.setAttribute("crossOrigin",'Anonymous')

绘制图片完整代码:

var img=new Image();

img.setAttribute("crossOrigin",'Anonymous')
img.src="http://****.jpg";

img.onload=function(){
    yourCanvas.drawImage(img,0,0);

}

注意,一定要先设置img.setAttribute,然后在设置src,我就是因为弄反了,调了一个下午才找到原因。


将canvas转为图片:

var mycanvas = document.getElementById("yaoqinghan");
var image =mycanvas.toDataURL("image/png");
$("#yqh-pic").attr("src",image); //将image传给图片的src属性


分享到

点赞(1)