svg html转换器,html – 将嵌入的SVG转换为PNG到位

本文介绍了一种将SVG图像转换为PNG格式的方法。通过使用HTML5画布API和SVG元素,可以实现SVG图像到PNG图像的转换。此过程涉及将SVG源加载为图像,然后绘制到画布上,并最终导出为PNG格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

演示:

http://phrogz.net/SVG/svg_to_png.xhtml

>创建一个img并将其src设置为您的SVG。

>创建一个HTML5画布并使用drawImage()将该图像绘制到画布上。

>在画布上使用toDataURL()获取base64编码的PNG。

>创建一个img并将其src设置为该数据URL。

var mySVG = document.querySelector('…'), // Inline SVG element

tgtImage = document.querySelector('…'); // Where to draw the result

can = document.createElement('canvas'), // Not shown on page

ctx = can.getContext('2d'),

loader = new Image; // Not shown on page

loader.width = can.width = myTargetImage.width;

loader.height = can.height = myTargetImage.height;

loader.onload = function(){

ctx.drawImage( loader, 0, 0, loader.width, loader.height );

tgtImage.src = can.toDataURL();

};

var svgAsXML = (new XMLSerializer).serializeToString( mySVGElement );

loader.src = 'data:image/svg+xml,' + encodeURIComponent( svgAsXML );

然而,这个答案(和所有客户端只有解决方案)要求浏览器支持SVG,这可能使其无法满足您的特定需求。

编辑:此答案假设SVG可用作单独的URL。由于描述的问题in this question我不能得到上面的工作与嵌入在同一文档执行工作的SVG文档。

编辑2:该问题描述的问题已通过改进的Chrome和Firefox克服。仍然存在限制,即< svg>元素必须具有width =“…”height =“…”属性为Firefox允许它绘制到画布。和Safari目前拖动整个画布每当你绘制任何SVG到它(不管来源),但that should change soon。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值