SVG 转 PNG
把 SVG 源码或 .svg 文件按指定倍数(1x/2x/4x)栅格化成 PNG,可选透明或纯色背景,全程在本地浏览器渲染。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
文件不会上传,全部在本地浏览器处理
2x 导出的 PNG 在 CSS 里仍按原始尺寸显示,适合高分屏(retina)。
原始尺寸: — 输出尺寸: —
还没有生成结果
这个工具能做什么
- 把设计稿或图标导出的 SVG 转成 PNG,交给不接受矢量图的系统(旧版 Office、部分聊天工具、只收位图的上传接口)。
- 要高分屏版本时按 2x / 4x 导出:24 × 24 的图标导出成 48 × 48,在 CSS 里仍按 24 px 显示,边缘不糊。
- 需要透明背景的 PNG 就勾「透明背景」;要贴进白底文档则填一个纯色背景色。
- 上传 .svg 文件或直接粘贴源码都能转,文件不离开浏览器,适合处理内部素材。
示例
输入
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="#4D6BFE"/></svg>,输出倍数 2x
输出
原始尺寸 24 × 24;输出尺寸 48 × 48;文件名 image-2x.png(未上传文件时基础名兜底成 image)
尺寸优先取 width / height(支持无单位与 px、pt,1pt = 4/3 px),两者都缺时用 viewBox 按比例补齐。真正的栅格化由浏览器用 Image + Canvas 完成,所以必须支持 Canvas。
常见问题
为什么带 `<script>` 的 SVG 会被拒绝渲染?
把 SVG 当图片渲染时脚本通常不会执行,但用户把源码另存为 .svg 再直接打开时脚本就会运行,形成 XSS 路径。工具在渲染前检查并拒绝含 `<script>` 的源码,从源头掐掉这条路径。
尺寸是怎么推断出来的?
先读根标签的 width / height(支持无单位与 px、pt);只有一边时按 viewBox 的比例算出另一边;两边都没有就直接用 viewBox 的宽高。百分比和 em 无法确定实际像素,会提示改用像素值;完全缺尺寸则提示缺少 width/height 或 viewBox。
最大能导出多大?
单边上限 8192 px。超过后多数浏览器分配 Canvas 会失败,所以工具提前提示「目标尺寸超出上限」。需要更大的图请先缩小原始 SVG 或换用其它方式。
导出的 PNG 颜色和原 SVG 不一致?
通常是 SVG 依赖了外部资源:外链字体、外链图片,或 CSS 里的 currentColor / 自定义属性。栅格化时这些可能取不到,导致字体回退或颜色变黑。把依赖内联进 SVG(字体转路径、颜色写死)后再导出即可。
文件会被上传吗?
不会。上传的 .svg 用 FileReader 读进内存,渲染和导出都在浏览器里完成,页面不发送任何网络请求。
关键词:svgpngsvg 转 pngsvg to png光栅化rasterizeretinacanvas图标导出image convert