您的位置:首頁技術文章
文章詳情頁

javascript - canvas使用toDataUrl()出錯,img設置img.crossOrigin = "*"也沒用。

瀏覽:104日期:2023-03-03 10:27:01

問題描述

頁面要做一個截圖的功能,本地生成了一張圖片,然后轉成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
国产综合久久一区二区三区