Heim > Fragen und Antworten > Hauptteil
Die Seite wird über eine Screenshot-Funktion verfügen. Ich erzeuge lokal ein Bild, konvertiere es dann in Canvas und ändere es dann von Canvas in PNG, aber canvas.toDataUrl() meldet weiterhin einen Fehler:
Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
Der Code lautet wie folgt:
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)
}
}