UltKit

PNG转SVG怎么做:Logo、图标和线稿描摹矢量化

把PNG转成SVG,靠的是描摹:软件把像素归并成纯色区域,再用曲线重新绘制它们的边缘。这种方法非常适合Logo、图标、签名和线稿,但对照片、渐变和很小的文字效果很差。

Jonas WeberJonas Weber网站性能编辑
更新于 12 分钟阅读
一只手握着触控笔悬在平板上方,平板放在一页摊开的杂志上,页面印着黑底上排成网格的白色小图标
Answer

PNG 能转成真正可无限缩放的 SVG 吗?

可以,方法是把它描摹成矢量路径,而不是简单地“套个壳”。请使用宽度至少 1000 px 的 PNG,把颜色数量设为设计中纯色的数量(通常为 2–8 种);线稿则切换为黑白。使用前先放大 SVG,检查曲线是否平滑。

像素与路径:PNG转SVG到底改变了什么

PNG 是位图:由固定的像素网格组成,每个像素有颜色,还可以带有不透明度。一个 500 × 500 px 的 Logo 恰好有 250,000 个小方格,除此之外一无所有,所以把它放大到海报尺寸,只能让每个方格变大,或让方格之间的空隙变模糊。SVG 是矢量图,本质上是一个文本文件,用坐标和填充色列出 <path>、<circle>、<rect> 等形状。浏览器或切割机会按所需尺寸重新绘制这些形状,所以矢量 Logo 在手机屏幕和展会横幅上都同样清晰。

从矢量到位图很容易,因为渲染器只需把形状绘制成像素;SVG 转 PNG 一秒钟就能完成。反过来则没有无损的捷径,因为像素网格里没有记录生成它的形状。必须有程序去查看像素,推测每个形状从哪里开始、到哪里结束。这一步叫描摹或矢量化,从 Illustrator 到命令行程序,每一个靠谱的 PNG 转 SVG 转换器,底层都是描摹器。

有些转换器会跳过最难的部分。它们生成一个合法的 SVG 文件,里面只有一个 <image> 元素,把原始 PNG 以 base64 文本嵌入,文件还会比 PNG 大约三分之一。这样的结果能作为 SVG 打开,也能通过文件类型检查,但本质仍是矢量外壳里的像素图:放大后能看到同样的锯齿边缘,切割机也找不到可循的路径。用文本编辑器打开任意 SVG 并搜索 data:image/png,如果有这串字符,就说明没有真正矢量化。

Myth把 PNG 另存或改名为 .svg 就变成矢量图了。

Fact改名只改了扩展名。像素还是像素,而且大多数应用会拒绝打开这个文件。

Myth内嵌 PNG 的 SVG 是真正的矢量文件。

Fact那只是 SVG 容器里的位图。只有描摹生成的 <path> 元素才能缩放而不出现像素化。

Myth描摹能还原小尺寸 PNG 原本没有的细节。

Fact描摹器只会跟随给定的像素。一个模糊的 64 px 图标会被描摹成圆滚滚的形状,无论放大多少倍都一样模糊。

能描摹干净的图稿,与永远描不好的图稿

描摹最适合本来就是以形状绘制的图片。设计软件导出的 Logo、扁平图标、黑色轮廓的卡通、扫描的签名或镂空模板,都由少数几种纯色和清晰的边缘组成。描摹器把每种颜色归为区域,沿边界走线并拟合平滑曲线,因此得到的 SVG 与设计师最初画的形状很接近。字标中的粗体字也描摹得不错,因为大号字母不过是又一个填充形状,每个字形都会变成可改色、可缩放的轮廓,但不能再重新输入文字。

照片则恰恰相反。人像或产品图有成千上万种互相渗透的细微色调,矢量格式没有高效的方式来描述。让描摹器取 16 色,会得到带明显色带的海报化插图;取 64 色,则会得到数以万计的小形状,文件比 PNG 大得多,看起来仍不像照片。柔和的渐变、投影和发光也会同样变成一叠叠细色带。小字是第三个难点:在 10–12 px 时,抗锯齿会把每个字母与背景混在一起,描摹器分不清“e”和“o”。

描摹效果干净

  • 纯色的 Logo 和字标
  • 图标、象形图和剪贴画
  • 墨线画、涂色页和漫画
  • 在白纸上扫描的签名和印章

需要先处理

  • 带柔和投影或发光的 Logo
  • 灰色笔触深浅不均的铅笔草图
  • 背景杂乱的 Logo 截图
  • 像素画,需要使用像素边缘曲线

效果不会理想

  • 人物、食物或风景照片
  • 以平滑渐变构成的图片
  • 小于约 14 px 的文字
  • 被严重压缩或放大过的图片

给描摹工具一张更好的PNG

分辨率比任何设置都重要。描摹器是根据边缘上的像素阶梯来拟合每条曲线的,阶梯越细,曲线越准。如果 PNG 是你自己从 Figma、Canva、Photoshop 或幻灯片导出的,请按显示尺寸的两到三倍重新导出;宽 1500–2000 px 的 Logo 能给描摹器充足的素材。除非 AI 放大后的结果在 100 % 缩放下看起来干净,否则不要先用它放大小尺寸 PNG,因为凭空生成的边缘纹理会和真实边缘一样被忠实地描摹出来。

其次,让背景尽量简单。PNG 支持完全透明,透明背景是最容易的情况:完全透明的像素都被视为空白,所以 SVG 里图案后面不会有白框。如果 PNG 有纯色底,请先紧贴图案裁剪;我们的指南如何按比例裁剪图片介绍了精确取景的方法。背景杂乱的图片,比如拍在 T 恤上的 Logo,应先抠掉,或在描摹前用一种纯色涂盖。

最后,在描摹器替你减色之前先自己减色。在源文件中隐藏阴影、发光和渐变叠加;如果矢量版不需要渐变,就用其中间色代替渐变填充。数一数剩下的纯色(包括轮廓色)并记下数字,它是下一步最有用的输入值。如果同一个 Logo 有 JPEG 和 PNG 两个版本,请选 PNG,因为 JPEG 压缩会在每条边缘周围产生噪点,详见 JPG、JPEG 与 PNG 的区别。

  • PNG 宽度至少 1000 px,细节丰富的 Logo 最好 1500–2000 px
  • 背景透明或为单一纯色,并紧贴图案裁剪
  • 阴影、发光、纹理和渐变已隐藏或拼合
  • 清楚设计用了多少种纯色,包括轮廓色

根据图稿选择颜色数、平滑度和阈值

所有描摹器都会问同样的三个问题,只是名称不同。第一个是保留多少种颜色。在 PNG 转 SVG 转换器中,颜色模式可在彩色、灰度和黑白之间选择,颜色数量设定像素被归为多少类,范围为 2 到 64。请与你记下的数量保持一致。设得太高,描摹器会把抗锯齿的边缘像素分成各自的细颜色,表现为每个形状周围有一圈淡淡的光晕;设得太低,则会把两种品牌色合并成一种。

第二个问题是如何处理边缘。平滑会磨圆像素留下的阶梯,细节决定多小的斑点仍能成为形状。PNG 页面默认细节 70、平滑 40,可在干净的导出图上保留小的转角。出现灰尘和杂点时降低细节,曲线发抖时提高平滑;由直边构成的几何 Logo,把曲线设为直线;想保持块状外观的像素画,则设为像素边缘。

第三个问题只适用于黑白描摹:墨与纸的分界线划在哪里。阈值范围 1 到 254,默认 128。比阈值暗的像素变黑,较亮的则为空白。用细蓝圆珠笔写的签名,把它调高到 160–180,让淡笔画得以保留;在略带灰色的纸上用粗马克笔画的图,把它调低到 100 左右,免得纸张纹理变成杂点。每次只改一个设置并对比,因为各项设置会相互影响。

按图案类型给出的起始参数;每次只调整一个值
图案颜色模式颜色数 / 阈值边缘
单色 Logo 或图标黑白阈值 128平滑曲线
3–5 色的扁平 Logo彩色与实际颜色数一致平滑曲线,平滑 40
几何 Logo,直边彩色与实际颜色数一致直线
细圆珠笔签名黑白阈值 160–180平滑曲线,提高平滑
铅笔草图灰度4–6 级灰降低细节以去掉纸张颗粒
像素画角色彩色与实际调色板大小一致像素边缘
照片,做海报效果彩色8–16 色结果会偏风格化
木桌上的平板电脑,屏幕显示用细笔触画出的大写字母 A,旁边有触控笔、耳机和一本橙色设计书
照片:Unsplash

如何评估转换得到的SVG

不要只看缩略图。在浏览器中打开 SVG,把最紧凑的曲线(字母的圆弧或尖角的顶端)放大到 400–800 %。好的描摹结果,弧线平滑,设计上有转角的地方转角锐利;差的则会出现抖动、凹陷和圆钝的尖角。然后在 Inkscape、Illustrator 或 Figma 等矢量编辑器中打开文件,开启轮廓或节点视图。简单的双色 Logo 通常只需几百个节点;如果你的有几千个,说明描摹器跟着噪点走了,这样的路径编辑或切割起来会很痛苦。

文件大小是快速的合理性检查。扁平 Logo 优化后的 SVG 通常只有几 KB 到几十 KB,往往比原 PNG 还小。描摹后的文件比源 PNG 大好几倍,通常意味着颜色太多、细节太多,或者是不该描摹的照片。请保持开启优化 SVG,它会在不产生可见变化的前提下舍入坐标并合并路径;最后把图案放大到海报尺寸、缩小到网站图标尺寸,确认两种尺寸下都清晰易辨。

  • 每个形状周围有细小的光晕或轮廓线

    抗锯齿的边缘像素变成了独立的颜色。把颜色数量减少一两种,或提高平滑。

  • 图案周围有数百个细小斑点

    噪点或纸张颗粒被描摹了。降低细节,或先清理 PNG 的背景再重新描摹。

  • 黑白模式下细线断成了短横

    笔画比分界值更浅。每次把阈值提高 15–20,直到线条连上。

  • 方形转角变圆了

    对这个设计来说平滑过高。降低它,或对几何形状把曲线切换为直线。

Inkscape、Illustrator、Potrace还是浏览器

免费的桌面方案是 Inkscape。导入 PNG,选中后打开路径 > 临摹位图(Shift+Alt+B)。亮度截止等单次扫描模式会生成一条黑色路径,适合线稿;多次扫描模式则把指定数量的颜色或灰度描摹成叠放的图层。Inkscape 的黑白描摹基于 Potrace,这是 Peter Selinger 于 2001 年发布的描摹库。Potrace 本身是命令行程序,读取 PBM、PGM、PPM 或 BMP 而不是 PNG,只处理双色图像,输出 SVG、PDF、EPS 或 DXF,适合用脚本批量处理大量扫描件。

在 Adobe Illustrator 中,图像描摹从 Illustrator CS6 起取代了旧的实时描摹。置入 PNG,打开窗口 > 图像描摹,从“黑白徽标”“3 色”或“16 色”等预设开始,再在高级部分调整路径、转角和杂色。在你点击扩展之前,描摹结果一直保持实时状态,扩展后会变成普通的可编辑路径。如果两个程序都没装,浏览器转换器也走同样的减色、找边缘、拟合曲线流程;图片转 SVG 转换器还支持 JPG、WebP 和 HEIC,也可以输出 EPS、PDF 或 DXF 而不是 SVG。

  • Inkscape 临摹位图

    Windows、macOS 和 Linux 上免费。提供单次扫描和多色模式、实时预览,之后可完整编辑路径。

  • Illustrator 图像描摹

    付费,属于 Creative Cloud。按图案类型提供预设,再通过扩展与其他矢量作品一起编辑路径。

  • Potrace

    免费,命令行,仅支持双色输入。最适合用脚本批量处理签名、印章和扫描线稿。

  • 浏览器转换器

    无需安装,每批最多 20 个文件,每个最大 95 MB,上传的文件 30 分钟后删除。

SVG接下来用在哪里,何时该索要源文件

在网页上,SVG 自 2001 年起就是 W3C 推荐标准,目前所有主流浏览器都能在 <img> 标签、CSS 背景中渲染它,也可以内联在 HTML 里,此时甚至能在鼠标悬停时改变颜色。描摹后的徽标通常只需一个小文件,就能取代为视网膜屏准备的多种尺寸 PNG。对于切割机,SVG 是 Cricut Design Space 和 Silhouette Studio 所需的格式:每个描摹出的形状都会成为切割路径,多色描摹的结果会以独立图层导入,可以分别用不同颜色的乙烯基材料切割。激光切割机和 CNC 软件通常更偏好 DXF,PNG转DXF 可以用同样的描摹设置生成。

印刷厂要求提供矢量稿,是因为印刷机、刺绣制版师或刻字机需要的是边缘而不是像素,描摹得到的 SVG 往往能满足贴纸、T 恤或横幅的需求。但它仍然只是近似结果:曲线是拟合出来的,颜色是由像素平均得出的,文字也被转成了轮廓。所以在描摹公司徽标之前,先问问制作者。设计师或广告公司几乎都留有原始的 AI、EPS、PDF 或 SVG 文件,包含精确的曲线、命名颜色和字体,发给你只需一分钟。当原稿已经丢失、徽标只留存在扫描的信笺上,或者作品是你自己的手绘时,描摹才是合适的办法。

描摹不会改变作品的归属权

把徽标、角色或插画转换为 SVG,只是生成另一种格式的副本,并不是新的设计。请只描摹你拥有、已获授权或已取得许可的作品,在切割或印刷他人作品用于销售之前,请先查看其许可协议。

要点总结

  • PNG 只有经过描摹才能变成真正的 SVG;内嵌 PNG 的 SVG 本质上仍是像素图片。
  • 颜色少且为纯色的徽标、图标、签名和线稿描摹效果好;照片、渐变和很小的文字则不行。
  • 从尺寸较大、画面干净、背景透明或为纯色的 PNG 开始,并确认它的确切颜色数量。
  • 使用前,请放大查看结果,检查节点视图,并留意文件大小。
  • 如果徽标出自设计师之手,描摹副本之前先索取原始矢量文件。
分享XFacebookWhatsAppTelegram

常见问题

怎么判断SVG文件是真正的矢量图,还是只包了一张位图?

用文本编辑器打开。如果看到带有一长串坐标的 path 元素,就是矢量图;如果看到一个 image 元素,后面跟着 data:image/png 和一大段文本,那就是套了 SVG 外壳的 PNG。

把SVG再转回PNG会损失画质吗?

不会,只要按你需要的尺寸渲染即可。矢量图可以导出为任意像素尺寸的 PNG,所以每次使用都导出一张新的 PNG,而不是缩放旧的那张。

描摹后的Logo应该有多少个节点?

没有固定上限,但简单的纯色徽标通常只需要几百个节点。节点多达几千个,往往说明描摹器跟随了噪点,请降低细节或颜色数量后重新描摹。

为什么SVG里彩色形状之间会出现细细的白线?

边缘紧挨在一起的形状,在查看器对每个形状分别做抗锯齿时,可能出现发丝般的缝隙。把形状层层叠放的描摹器可以避免大部分这类问题。

给印刷厂应该发SVG还是PDF?

先问清他们接受什么格式。许多印刷厂更喜欢 PDF 或 EPS,因为他们的工作流程就是围绕这些格式建立的,而且两者都能容纳与 SVG 相同的矢量路径。

描摹出来的Logo里的文字还能编辑吗?

不能当作文字编辑。描摹会把字母变成轮廓形状,所以要修改文字,需要先识别字体,在矢量编辑器中重新输入,并放到原来描摹字母的位置。

继续阅读