失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > html保存为svg JavaScript – 将内联SVG保存为JPEG / PNG / SVG

html保存为svg JavaScript – 将内联SVG保存为JPEG / PNG / SVG

时间:2019-08-30 19:53:17

相关推荐

html保存为svg JavaScript – 将内联SVG保存为JPEG / PNG / SVG

如今这很简单.

基本思路是:

> svg到画布

> canvas到dataUrl

>从dataUrl触发下载

它实际上在stackoverflow片段之外工作

var btn = document.querySelector('button');

var svg = document.querySelector('svg');

var canvas = document.querySelector('canvas');

function triggerDownload (imgURI) {

var evt = new MouseEvent('click', {

view: window,

bubbles: false,

cancelable: true

});

var a = document.createElement('a');

a.setAttribute('download', 'MY_COOL_IMAGE.png');

a.setAttribute('href', imgURI);

a.setAttribute('target', '_blank');

a.dispatchEvent(evt);

}

btn.addEventListener('click', function () {

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

var data = (new XMLSerializer()).serializeToString(svg);

var DOMURL = window.URL || window.webkitURL || window;

var img = new Image();

var svgBlob = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});

var url = DOMURL.createObjectURL(svgBlob);

img.onload = function () {

ctx.drawImage(img, 0, 0);

DOMURL.revokeObjectURL(url);

var imgURI = canvas

.toDataURL('image/png')

.replace('image/png', 'image/octet-stream');

triggerDownload(imgURI);

};

img.src = url;

});

svg to png

Look, i'm cool

关于下载部分,您可以设置文件名等(虽然不在本例中).前几天我回答了一个关于如何从给定页面下载特​​定部分HTML的问题.下载部分可能有用:/a/28087280/2178180

update:现在让你指定文件名

如果觉得《html保存为svg JavaScript – 将内联SVG保存为JPEG / PNG / SVG》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。