跳到主内容
UniKit

SVG 转 PNG

把 SVG 源码或 .svg 文件按指定倍数(1x/2x/4x)栅格化成 PNG,可选透明或纯色背景,全程在本地浏览器渲染。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

SVG 源码

文件不会上传,全部在本地浏览器处理

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

同类工具