您的位置:首页技术文章
文章详情页

javascript - canvas使用toDataUrl()出错,img设置img.crossOrigin = "*"也没用。

【字号: 日期:2023-03-03 10:27:01浏览:42作者:猪猪

问题描述

页面要做一个截图的功能,本地生成了一张图片,然后转成canvas,再从canvas变成png,但是canvas.toDataUrl()一直报错:

Uncaught DOMException: Failed to execute ’toDataURL’ on ’HTMLCanvasElement’: Tainted canvases may not be exported.

代码如下:

var url = DOMURL.createObjectURL(svg);var canvas = document.createElement(’canvas’);var ctx = canvas.getContext(’2d’);canvas.width = window.innerWidth;canvas.height = window.innerHeight*1.25;cacheImg(url,function(){ ctx.drawImage(this , 0 , 0); var image = canvas.toDataURL('image/png').replace('image/png', ’image/octet-stream’); DOMURL.revokeObjectURL(url);});function cacheImg(url , callback){ var img = new Image() img.setAttribute(’crossOrigin’, ’Anonymous’); img.src = url; img.onload = function() {callback.call(img) }}

问题解答

回答1:

这有一片文章,里面部分代码或许有帮助http://fex.baidu.com/blog/201...

标签: JavaScript