svg格式文件转换为png图片文件

7 篇文章 0 订阅
4 篇文章 0 订阅

快要下班的时候,领导突然找我,发给我一个页面,说觉得这个页面的图标感觉不错,想把它做成图片放在项目里

我打开网页,用f12一看,用的是svg,这个我也不知道咋处理啊
在这里插入图片描述
但是遇到事情我们先不要慌,先在网上找找有没有解决办法
一顿搜索之下,我找到了两种解决办法:
第一种:不依赖任何外部库,同时仅仅通过浏览器端js便能实现的方法

首先,我们约定SVG的上下文结构是如下的:

<div class="svg-wrap">
//这里放置自定义的svg
  <svg>...</svg>
</div>

然后,我们就可以通过如下代码来将svg图形转为图片并下载了:

var svgXml = $('.svg-wrap').html();

var image = new Image();
image.src = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(svgXml))); //给图片对象写入base64编码的svg流

var canvas = document.createElement('canvas');  //准备空画布
canvas.width = $('.svg-wrap svg').width();
canvas.height = $('.svg-wrap svg').height();

var context = canvas.getContext('2d');  //取得画布的2d绘图上下文
context.drawImage(image, 0, 0);

var a = document.createElement('a');
a.href = canvas.toDataURL('image/png');  //将画布内的信息导出为png图片数据
a.download = "MapByMathArtSys";  //设定下载名称
a.click(); //点击触发下载

这样子就将svg转成图片并且下载下来了在这里插入图片描述

第二种:直接使用IE浏览器或Edge浏览器打开页面
然后右键点击图片,选择【图片另存为】。

在这里插入图片描述

修改保存类型为.png格式。
在这里插入图片描述

然后点击【保存】,就能看到透明的png图片文件了。

使用第二种方法,分分钟就搞定svg转成图片。

然后把领导需要的图片发给他,搞定下班~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值