SVG 是矢量格式 — 它以数学指令存储形状和路径。PNG 是栅格格式 — 它存储像素。将 SVG 转换为 PNG 意味着以特定像素尺寸渲染矢量。当平台不支持 SVG、需要用于打印或社交媒体 的固定分辨率图像,或需要与旧软件兼容时,就需要 PNG。以下是四种免费方法。
转换前:选择正确的分辨率
SVG 是分辨率无关的 — 可以以任意尺寸渲染而不失真。转换前,确定所需的像素尺寸:
- 网页图标:32×32、64×64 或 128×128 px — 用于网站图标和 UI 图标的小型 PNG
- 社交媒体头像:最低 400×400 或 800×800 px
- 印刷:使用 300 DPI 作为基准 — 3 英寸印刷需要 900×900 px 的正方形 Logo
- 视网膜 / HiDPI 显示屏:以 CSS 像素尺寸的 2× 或 3× 导出 (例如:100×100 CSS 元素需要 200×200 px PNG)
PNG 将与导出尺寸一样清晰 — 因此选择所需的最大尺寸,再从那里缩小。
方法一:浏览器(最快,无需安装)
所有现代浏览器都可以渲染 SVG 并将其保存为 PNG。这是简单 SVG 最快的方法:
- 在 Chrome、Firefox 或 Safari 中打开 SVG 文件(拖入浏览器)
- 右键单击图像选择图像另存为 — 部分浏览器提供直接 PNG 导出
- 精确尺寸:打开浏览器 DevTools(F12),找到
<svg>元素, 截图前将width和height属性设为目标像素
限制:浏览器截图受屏幕分辨率限制。对于高分辨率 PNG(如 4000×4000 px), 请改用 Inkscape 或 ImageMagick。
方法二:Inkscape(免费,最佳质量)
Inkscape 是完全控制输出分辨率的 SVG→PNG 转换最佳免费工具。 适用于 Windows、Mac 和 Linux 的免费开源软件。
- 从 inkscape.org 下载并安装 Inkscape
- 在 Inkscape 中打开 SVG 文件
- 转到文件 → 导出 PNG 图像(或 Windows/Linux 按Shift+Ctrl+E,Mac 按 Shift+Cmd+E)
- 在导出 PNG 对话框中:
- 文档选项卡:以文档尺寸导出整个 SVG 画布
- 绘图选项卡:裁剪到实际绘图内容(删除空白)
- 选择选项卡:仅导出选中的元素
- 以像素设置宽度和高度, 或设置 DPI(96 DPI = 屏幕,300 DPI = 打印质量)
- 点击另存为,选择文件名和位置,然后点击导出
Inkscape 默认保留透明度 — 如果 SVG 有透明背景,PNG 也会有透明背景。
方法三:ImageMagick 命令行(批量转换)
如果需要转换多个 SVG 或自动化流程,ImageMagick(免费,开源)可从终端操作:
- 从 imagemagick.org 安装 ImageMagick(Mac 通过 Homebrew:
brew install imagemagick) - 以 300 DPI 转换单个文件:
convert -density 300 input.svg output.png - 转换为特定像素尺寸:
convert -size 1000x1000 input.svg output.png - 批量转换文件夹中所有 SVG:
for f in *.svg; do convert -density 300 "$f" "${f%.svg}.png"; done
ImageMagick 是自动化、CI/CD 流水线或一次性转换大量 SVG 文件的最佳选择。
方法四:在线 SVG→PNG 转换工具
不安装软件的快速单次转换:
- Convertio(convertio.co):上传 SVG,设置输出尺寸,下载 PNG
- CloudConvert:支持自定义宽度/高度和 DPI 设置
- SVGtoPNG.com:带分辨率选项的简单拖放
在线工具适合简单的 Logo 和图标。对于有自定义字体或复杂效果的 SVG,请检查输出质量 — 部分在线转换器无法正确处理所有 SVG 功能。
透明度:保留或删除背景
SVG 通常有透明背景。各方法的处理方式:
- Inkscape:默认保留透明度 — PNG 也会有透明背景
- ImageMagick:保留透明度。要添加白色背景: 在命令中添加
-background white -flatten - 浏览器:通常在保存的图像中保留透明度
- 在线工具:大多数保留透明度 — 使用前检查输出
如果需要为不支持透明度的平台提供白色背景的 PNG,导出后使用图片转换添加背景。
SVG→PNG:可以期待什么
- 质量:PNG 在导出尺寸下完全清晰 — 但之后放大超过该尺寸会变模糊
- 文件大小:简单 Logo 的 1000×1000 px PNG 通常为 10~100 KB。 颜色丰富的复杂 SVG 会生成更大的 PNG
- 文字:SVG 中的文字在字体已嵌入或转换为轮廓时正确渲染。 否则,使用已安装该字体的 Inkscape
- 渐变和效果:SVG 渐变、阴影、滤镜在 Inkscape 和 ImageMagick 中 渲染良好。在线工具效果不一
转换后,使用图片压缩在不损失明显质量的情况下 减小 PNG 文件大小 — 适用于网络使用。