可下载SVG与Canvas元素

Downloadable SVG vs Canvas element?

本文关键字:Canvas 元素 SVG 下载      更新时间:2023-09-26

是否有Javascript-y方法为Canvas元素提供可下载的链接?SVG图形怎么样?如果您还包含一个服务器端脚本(不是首选,但如果这是唯一的方法…),该怎么办?

我从未尝试过,但我突然想到,您可能可以使用数据URL来实现这一点。理论上,您可以使用JS生成所需的图像像素数据,然后将其插入链接的href中。但不确定这是否可行。

数据URL示例:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

我建议您将数据作为POST方法传递,因为使用Znarkus的方法会很快遇到URL的大小约束。

但对于SVG,您可以使用API,例如Batik(http://xmlgraphics.apache.org/batik/)。关于如何做到这一点的例子,你可以遵循以下建议:

http://www.ehow.com/how_4764609_convert-svg-file-png-format.html

但是,对于这个POST也是最好的选择,这将是一个获取图像的ajax调用。

location.href = document.getElementById('canvas').toDataURL()