html svg导出图片,将SVG保存为图片_唐霜的博客

本文介绍如何利用D3.js将SVG图表转换为PNG图片,包括直接使用SVG dataURL、通过Canvas转换以及使用Blob保存为真实图片文件的方法。通过示例代码详细解释了转换过程。
摘要由CSDN通过智能技术生成

原文:http://techslides.com/save-svg-as-an-image

SVG超赞,但是有的时候你想把它转换为其他的图片格式,比如jpg或png。如果你用d3.js创建了一些图表,你可以提供把这些图表保存为图片格式的选项。网上晃了一圈,我最后找到了这篇文章《Save SVG as PNG》。虽然它提供了一种解决问题的还不错的方案,但我还是想把它扩展一下,以提供更多的可选方案。

最开始,我想举个栗子,你用D3创建了一些图,然后想用一个button和一个js函数来实现svg到图片的格式转换。我想你有三种选择来实现这个展示图片的需求:一,直接用svg作为dataurl的img标签,这当然还是一个技术上的svg,没啥区别;二,用html5 canvas把svg转换为png,然后插入一个base64 data到一个img标签;三,把svg转换为png的二进制数据形式,把数据加载到一个blob url,这样你可以在一个img标签内提供一个真实的图片文件。

让我们从一个d3的例子开始。我稍微改了一下代码,把svg的内容放到一个div而不是body里面,我还加了“保存图片”的按钮,以及前面提到的js函数。你可以看这里演示。下面是这个实现的关键代码:

d3.select("#save").on("click", function(){

var html = d3.select("svg")

.attr("version", 1.1)

.attr("xmlns", "http://www.w3.org/2000/svg&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值