Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. 这是我的报错。 这是跨域问题吗。可我是本地文件的图片啊!
5 回答
有可能,我按照老师的做法,成功了。
在你运行代码的时候,需要一个web服务,看老师的浏览器地址栏(localhost:8080),而不能直接在本地用浏览器打开页面。(如果你了解Node,那么你可以安装http-server来轻松实现。)
以下是我的代码:
var src = '5k.jpg' var set = function(key){ var img = document.createElement("img"); img.addEventListener("load",function(){ var imgCanvas = document.createElement("canvas"), imgContext = imgCanvas.getContext("2d"); imgCanvas.width = this.width; imgCanvas.height = this.height; //渲染 imgContext.drawImage(this,0,0,this.width,this.height); var imgAsDataUrl = imgCanvas.toDataURL("image/png"); //保存到本地 try{ localStorage.setItem(key,imgAsDataUrl); }catch(e){ console.log("storage failed : " + e); } },false); img.src = src; } var get = function(key){ var srcStr = localStorage.getItem(key); var imgObj = document.createElement("img"); imgObj.src = srcStr; document.body.appendChild(imgObj); }
举报
0/150
提交
取消