跳过主要内容

把图片转成 SVG

一张图进来,一个 SVG 出去,两种转换方式任选。Stencil 跑在你自己的设备上,不花任何费用;Airbrush 跑在矢量模型上,需要登录。两者都不会保存你的文件。

转换方式

免费,不需要账号,图片不会离开你的设备。

你转换出的 SVG 会出现在这里在上方选择一张图片,然后按下按钮;SVG 会连同它旁边的下载一起出现在这里。

怎么把图片转成 SVG

  1. 01

    选一种转换方式

    Stencil 还是 Airbrush,在工具顶部。两者的区别是能表达什么,不是谁更好;下面两张卡分别说明。

  2. 02

    选一张图片

    点卡片,选 PNG、JPEG 或 WebP。按下按钮之前什么都不离开你的设备,而 Stencil 从头到尾都不外发。

  3. 03

    开始转换

    按下按钮。Stencil 在你自己的浏览器里重建画面;Airbrush 把图片交给矢量模型,用路径作答。

  4. 04

    拿走文件

    SVG 会出现在你的图片旁边,带下载按钮。不建会话,什么都不留。

Stencil 与 Airbrush

对比方式

Stencil

把你自己的像素描成十六种平涂颜色,就在你自己的设备上完成。线稿和图标最干净;照片会变成色带。

转换前转换后
图片
转换成的路径结果
pawta.pngpawta-stencil.svg

Airbrush

写得出渐变,柔和的明暗能留下来;但它是按自己的理解重画的,结果未必就是你发的那张图。

转换前转换后
图片
转换成的路径结果
pawta.pngpawta-airbrush.svg

为什么要把图片转成 SVG?

位图(PNG、JPEG、WebP)是一张固定的像素格子;SVG 是一份形状清单,所以叫可缩放矢量图形——它没有会用尽的格子。把图片转成 SVG,就是把这些形状重新建出来,下面几条都从这一点来。

任意尺寸都不糊

路径没有分辨率这回事:同一个文件在 16px 的 favicon 上和海报尺寸上都是对的,不用再导出第二份。

文件还能继续改

形状是彼此独立的路径,矢量编辑器(或文本编辑器)可以选中其中一个、移动它、改它的颜色;PNG 只给你一支笔,没有可选的对象。

纯色图形通常会小很多

用这一页自己的样本实测:上面那张 PNG 是 768,029 字节,它的 Stencil 描摹结果是 24,398 字节。省下来的是平涂颜色——把照片描成矢量,文件可能比原图还大。

图标、印刷和代码读的都是它

favicon、App 图标、印刷和构建流程要的都是路径;位图每换一个尺寸就得重做一份。

转换不是重画. 描出来的是一堆跟着你像素走、彼此独立可编辑的形状,而不是一个看懂了这张图的文件——照片会变成一大堆形状。这也正是上面列出两种方法而不是一种的原因。

PNG、JPEG、WebP 和 SVG:各自适合什么

这里有三种是位图——尺寸固定的像素格子——第四种不是:它是一份描述形状的文本。这个工具吃前三种、吐出第四种。这一页顶上那张样本,四种格式装的是同一个 1254×1254 的画面,所以下面的数字是实测,不是理论值。

PNG

无损位图:每个像素按原样存下来,透明的地方保持透明。

1995 年 1 月起,一群开发者动手做这个格式,原因是当时人人都在用的 GIF 被一项必须付费授权的专利覆盖。PNG 就是那个谁都不用付钱的格式,W3C 在 1996 年 10 月把它发布为 Recommendation——它的出身就这么简单。

正因为这份精确,截图、线稿和纯色图形通常用 PNG;也正因为这份精确,上面那张样本存成 PNG 是 768,029 字节,同一张图存成 JPEG 是 70,147 字节。PNG 也没有印刷意义上的“分辨率”:文件只说自己有多少像素,用多大是之后才决定的——把一张小 PNG 放到很大的位置上,问题就出在这里。

JPEG

有损位图,为照片而生:它丢掉眼睛大概不会注意的细节,文件因此变小。不支持透明。

它的名字来自写它的那个委员会,而不是某家公司——Joint Photographic Experts Group,1986 年开始工作,1992 年把标准发布为 ISO/IEC 10918。委员会出身意味着它无处不在却没有人拥有它,也意味着今天大多数照片仍然以它到达。

文字、线稿和平涂颜色是压缩的代价:回来时发虚或发块,而且每存一次都会再掉一点。相机或手机拍的 JPEG 通常还带着 EXIF(机型,有时还有地点),而这一页吐出的 SVG 里这些一个都没有。

WebP

可以在同一个容器里有损或无损的位图,还支持透明和动画。有损 WebP 的方法借自 VP8 视频编码:用周围的像素预测一块像素,只存差值。

Google 在 2010 年 9 月以开发者预览的形式发布它,自带参考实现,目标是把图片密集的网页花掉的字节省下来。它是某一家公司的格式,而不是标准组织的,这一点正好解释了它的支持度曲线。

在这张样本上它做到了设计目标:36,752 字节,对比 JPEG 的 70,147、PNG 的 768,029;无损 WebP 则是 465,786 字节。浏览器支持它很多年了,卡住的是老的桌面软件和一些处理流程。

SVG

它根本不是位图:用 XML 描述形状,所以没有像素格子,也没有会用尽的分辨率。浏览器读它,文本编辑器打开它,代码可以改它的样式,也可以让它动起来。

它出自一场标准之争:1998 年 W3C 手上有六份互相竞争的网页矢量图形提案,其中一份来自 Adobe、IBM、Netscape 和 Sun,另一份来自 Microsoft、HP 和 Macromedia。SVG 就是这场争论的结果,2001 年 9 月发布为 W3C Recommendation。

对纯色图形来说它是四种里最小的——这张样本的描摹结果是 24,398 字节,PNG 是 768,029 字节——也是四种里唯一能在代码评审里 diff 的。它唯一存不好的东西是照片。另外,把 base64 位图包在里面的 SVG 不是矢量文件,那是穿了 SVG 外壳的 PNG——也就是下面那些问题反复回到的那件事。

常见问题