0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
配置
将 SVG 转换为 PNG 或 JPG,并选择输出分辨率:矢量会按所要求的尺寸重新绘制,因此任何比例下都保持清晰。你可以上传文件或粘贴 SVG 代码。全部处理都在浏览器中完成,不上传任何文件。
拖入 SVG 文件,或点击选择
SVG
工作原理
SVG 是矢量格式:它用坐标描述图形,因此可以在任何尺寸下绘制而不损失清晰度。PNG 和 JPG 则是像素数量固定的位图。栅格化正是这一步:确定一个分辨率,把矢量绘制到该像素网格上。
因此分辨率要在转换之前选择,而不是之后。工具会先把 SVG 的宽高改写为所需尺寸,然后才绘制,这样浏览器会按该比例重新描绘曲线,而不是把一张小图放大。你可以给出倍数(2×、4×……),也可以指定精确的像素宽高。
PNG 会保留透明度,JPG 不支持,因此透明区域会填上你选择的背景颜色。全部绘制都在浏览器中通过 Canvas 完成:文件和 SVG 代码都不会上传到任何服务器。
示例
<svg viewBox="0 0 24 24" width="24" height="24">…</svg>PNG 96 × 96 px24 px 的图标以 4× 倍数转换后为 96 × 96 px,这是高像素密度屏幕的常用尺寸。<svg viewBox="0 0 1200 630">…</svg>JPG 1200 × 630 px没有 width 和 height 属性的 SVG 会从 viewBox 取得尺寸;这里以 1× 栅格化,用作社交网络的预览图。使用场景
- 生成应用商店或 Web 应用清单所要求的 PNG 图标,它们不接受 SVG。
- 把矢量标志转换为透明背景的 PNG,插入演示文稿或文档。
- 把 SVG 图表或示意图导出为 JPG,用于邮件附件或上传到不接受矢量图的平台。
- 为高像素密度屏幕生成同一图标的 @2x 和 @3x 版本。
- 基于 SVG 模板生成网站的预览图(Open Graph)。
常见问题
应该选择什么分辨率?
取决于最终用途。普通屏幕使用图片实际显示的尺寸即可;高像素密度屏幕建议取该值的 2× 或 3×。用于印刷时,把英寸尺寸乘以 300 即可达到 300 dpi。
为什么我的 SVG 输出尺寸和预期不一样?
初始尺寸取自 width 和 height 属性;若缺失或使用百分比,则采用 viewBox 的比例。两者都没有时,浏览器会假定为 300 × 150 px。你可以忽略该值,在自定义模式下输入精确的宽高。
透明度会保留吗?
PNG 可以,只要保持勾选透明背景选项。JPG 没有 Alpha 通道,因此始终绘制在纯色之上:默认是白色,你也可以更改。
为什么使用了外部图片或字体的 SVG 会失败?
当 SVG 在图片元素中绘制时,它无法下载其他域名的资源,浏览器出于安全考虑会阻止导出。解决办法是把这些资源内嵌到 SVG 中:图片改为 data URI,文字转换为路径。
可以把 PNG 转回 SVG 吗?
不能直接转回:栅格化会丢失矢量信息,只剩下像素。要恢复曲线需要经过矢量描摹,得到的是近似形状而非原始文件。因此最好始终保留原始 SVG。