前阵子给公众号做封面,设计师给了一个 SVG 格式的 logo。我直接转成 PNG 插进文章,结果预览里 logo 背后是一块黑底,和白色封面格格不入。折腾半天才弄明白:不是转换工具有问题,是我没选对背景选项。
SVG 是矢量图,转 PNG 这种位图有不少细节。下面把我实测的几种情况和解决办法写清楚。
SVG 和 PNG 到底差在哪
SVG 用数学公式描述图形,放大到多大都清晰;PNG 是像素图,放大会糊。转 PNG 通常因为:
- 平台限制:微信、微博等很多平台不直接收 SVG。
- 打印/软件兼容:不少软件只认 PNG。
- 固定尺寸需求:头像、封面要特定像素尺寸。
SVG 转 PNG 的最大好处是能无损输出任意尺寸——矢量图想多大清多清晰。
在线转换步骤
用 NBTools 的 SVG 转 PNG 工具:
- 上传 SVG:支持批量最多 20 个。
- 选输出模式:单尺寸(自定义宽高)或多尺寸(一次出 16/32/64/128/256/512/1024/2048 多档)。
- 选背景:透明 / 白色 / 同时生成。
- 转换:浏览器本地渲染,不上传服务器。
- 下载:单张或 ZIP 打包。
透明背景丢了?根因在这里
我用同一个带透明区域的 logo 测了三种背景设置:
| 背景设置 | 公众号显示 | 普通网页叠加 |
|---|---|---|
| 透明背景 | 黑底(平台强制填充) | 正常透出底层 |
| 白色背景 | 白底(正常) | 白方块 |
| 同时生成 | 用白底版 | 用透明版 |
结论:公众号等平台对透明 PNG 会填黑底,这是平台行为不是转换错误。解决办法是导出时勾"白色背景",或直接"透明+白色同时生成"两份,按使用场景选。
尺寸怎么选:清晰度实测
SVG 是无损的,但转 PNG 时如果目标尺寸小于原始设计尺寸,会损失细节。我拿一个 1024px 设计的 logo 测:
- 输出 1024px:和原设计一致,锐利
- 输出 512px:清晰,小图够用
- 输出 64px:细节开始粘连,文字型 logo 会糊
建议:转出的尺寸别小于 logo 实际设计尺寸。要做高清发布就用"2x 输出"(设计师常用 256px 设计,转 512px 发布)。多尺寸模式一次出全套,省得反复转。
分场景建议
- 公众号封面/插图:选白色背景,避免黑底
- 网页水印/图标叠加:选透明背景
- App/网站多尺寸图标:用多尺寸模式一次出全套
- 社交媒体高清发布:勾 2x 输出
- 不确定用途:透明+白色同时生成两份
常见问题
转完变模糊了
检查输出尺寸是否小于原始设计尺寸。SVG 放大不会糊,但转成小尺寸 PNG 会丢细节,按原始尺寸或更大尺寸输出。
公众号里是黑底
透明 PNG 被平台填了黑底。导出时选白色背景即可。
批量怎么高效
用批量上传一次传多个 SVG,配合多尺寸和 ZIP 下载,一次性拿走所有结果。
转换安全吗
NBTools 在浏览器本地用 Canvas 渲染,文件不上传服务器,隐私可控。
参考资料
- SVG 格式说明:https://zh.wikipedia.org/wiki/SVG
- PNG 格式说明:https://zh.wikipedia.org/wiki/PNG
- NBTools SVG 转 PNG 工具:https://nbtools.cn/tools/svg-to-png