【发布时间】:2016-02-18 05:17:17
【问题描述】:
我有一个 SVG,其中包含许多引用外部图像源的图像标签(比如来自 amazon s3 存储桶)。我正在尝试将其转换为这样的 png
canvg(document.getElementById('myCanvas'), svg);
var imgData = document.getElementById('myCanvas').toDataURL("image/png");
我收到此错误未捕获的安全错误:无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布。
我已更改我的 s3 存储桶设置 (As mentioned here)。 在canvg函数之后添加了这段代码
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
img.src = document.getElementById('myCanvas').value;
甚至尝试遍历所有图像标签并设置 crossOrigin 属性
我仍然遇到同样的错误。
【问题讨论】:
-
终于找到了解决办法。我现在正在服务器端进行转换(使用 apache batik 转码器库)没有更多的安全错误;)
标签: jquery cross-domain canvg