html中svg画布内容转换为png导出

话不多说,直接上代码

<html>
	<head>
		<style>
			* {
				background: transparent;
				margin: 0px;
				padding: 0px;
			}
			
			.main-warp {
				width: 1800px;
				height: 1500px;
			}
			
			.download {
				position: fixed;
				top:10px;
				width: 60px;
				height: 30px;
				line-height: 30px;
				right: 10%;
			}
		</style>
	
		<script>
		
			function converDownload() {
				var mainWarp = document.getElementById("main-warp");
				var svg = document.getElementById("orig-svg");
				
				var dd = 'data:image/svg+xml;base64,' + window.btoa(unescape(encodeURIComponent(mainWarp.innerHTML)));

				var img = new Image();
				img.src = dd;
				document.getElementById("help-div").appendChild(img);
	 
				var canvas = document.createElement('canvas');
				canvas.width = img.width;
				canvas.height = img.height;
				var ctx = canvas.getContext('2d');
				ctx.drawImage(img, 0, 0);
				setTimeout(function() {
					var data = canvas.toDataURL('image/png');
				
					var a = document.createElement('a');
					a.href = data;  //将画布内的信息导出为png图片数据
					a.download = "logo.png";  //设定下载名称
					a.click(); //点击触发下载
				}, 1000);
				
			}
		</script>
	</head>
	<body>
		<button class="download" onclick="converDownload()">下载</button>
		<p id="main-warp" class="main-warp">
			<svg id="orig-svg">自己的svg标签内容</svg>
		<p>
		<div id="help-div" style="width: 100%;"></div>
	</body>
</html>

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值