所以我正在尝试为我正在构建的 OpenLayers 3 应用程序创建打印地图功能。我知道他们的例子,但每当我尝试使用它时,我都会遇到可怕的受污染的画布问题。我已经阅读了整个互联网,遇到人们说首先要正确设置 CORS(完成并完成),但也要这样做:
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
img.src = url;
上面的描述在这里。
我的问题是,我以前从未真正使用过 toDataURL() 并且我不确定如何确保正在创建的图像在猛烈撞击之前正确设置了 crossOrigin 属性:
Error: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
有什么想法吗?
我见过这个。我的问题是他们如何将其整合到一个有效的功能中。就像是:
var printMap = function(){
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
img.src = url;
img.onload = function() {
var canvas = document.getElementsByTagName('canvas');
var dataURL = canvas.toDataURL("image/png");
console.log(dataURL);
};
};