PNG 转 SVG - 是描摹,不是反栅格化
没有任何东西能把 PNG 变回它原来的矢量文件。那份信息在图像被栅格化的一刻就消失了,没有工具能找回来。描摹做的是另一件事,开始之前值得先弄明白:它观察像素,把它们归成颜色相近的平坦区域,再沿着每个区域画一圈轮廓。在徽标上这近乎完美,因为徽标本来就是几块平涂形状。在照片上这是一场灾难,而本页会具体告诉你灾难有多大。下面每一个数字都是通过本工具实测的。描摹完全在你的浏览器里运行 - 图像不会被上传 - 而且因为它是我们做的最慢的一件事,它会报告真实进度,你也可以随时中止。
如何使用此工具
放入你的 PNG
把文件拖到上方方框里或点击选择,最大 20 MB。文件按内容而非扩展名检查。任一边超过 4000 像素的图像会先被缩小,因为描摹的开销比像素数增长得更快。
设定颜色数量
这是真正关键的那个控制项。两种颜色会得到干净的二值描摹,对黑色徽标最理想。六到八种适合平涂插画。每多一种颜色都会增加路径和字节,所以请从低往上调,只调到预览不再变好为止。
调整平滑度和最小面积
平滑度控制一条曲线为了保持简洁可以偏离像素多远 - 越高越平滑、越小,过高则会把拐角磨圆。最小面积会丢弃小于某个像素数的区域,可以清除扫描件和压缩来源里的杂点。
对比前后
两个面板并排显示原图和描摹结果,下方给出输出体积和路径数。路径数是诚实的复杂度指标:一次好的徽标描摹只有寥寥数条,而一个上百的数字意味着描摹器正在追逐它无法很好表达的细节。
复制或下载 SVG
把源码直接复制到剪贴板以便内联粘贴,或者作为文件下载。大图描摹需要几秒钟,而「取消」按钮是真的停止工作,而不只是把它藏起来。
常见问题
描摹能把我原来的矢量文件还给我吗?
不能,任何工具都不能。栅格化丢掉了形状、只留下一张颜色网格,所以描摹只能从这些像素里猜出新的轮廓。结果是对画面的近似 - 对平涂图稿往往非常接近 - 但它是一幅新的图,而不是你最初的那一幅。
它在徽标上效果如何?
非常好,而且通常还会变小。我们实测的一个 400 × 400 黑色徽标,从 7.7 KB 的 PNG 变成了仅由四条路径构成的 1.9 KB SVG - 任意缩放都更锐利,体积不到原来的三分之一。对这类图稿,两种颜色就是正确的设置。
如果我去描摹一张照片会怎样?
你会得到一个又大又比原图更难看的东西。我们描摹的一张 14.1 KB 照片,输出是带 607 条路径的 151.5 KB SVG - 大了十倍以上,而且明显斑驳。工具会从输入的颜色丰富度检测到这一点,在你动手之前就提醒你。
为什么我描摹出的 SVG 比 PNG 还大?
因为这两种格式付出代价的地方不同。PNG 压缩重复像素非常便宜;而 SVG 必须为每一条轮廓逐个写出坐标。我们那个六色平涂测试从 6.3 KB 的 PNG 变成了 16.2 KB 的 SVG - 是更大了,但现在与分辨率无关,而这通常正是你要它的原因。
我该选多少种颜色?
比你以为的更少。在同一张平涂插画上,两种颜色得到 622 字节和 2 条路径,八种得到 16.2 KB 和 120 条路径,十六种得到 24.2 KB 和 185 条路径。八种与十六种之间的视觉差别很轻微,文件却又大了一半。
什么时候描摹才是对的工具?
徽标、线稿、印章和签名、丝网印刷与刺绣图稿,以及任何要送去激光或刻字机的东西 - 那些机器需要的是路径而不是像素。它们的共同点是平涂颜色、边缘干净,没有渐变也没有柔和阴影。
什么时候不必费这个劲?
照片,任何带渐变、投影或柔焦的东西,以及文字截图。这些都依赖平坦区域根本无法表达的平滑过渡,所以你只会得到一圈圈色带,和一个比原图大出好几倍的文件。遇到这些情况,请直接去压缩原图,而不是描摹它。
透明度会保留下来吗?
部分保留。完全透明的区域会被描摹成空白而不是某种颜色,所以透明背景上的徽标依然干净。半透明像素会被并入最接近的平涂颜色,因为一个描摹出的区域只有一种填充 - 柔和边缘和羽化阴影传不过来。
描摹时我的图像会被上传吗?
不会。整个描摹在你浏览器内的一个 Web Worker 里运行,这也是它工作时界面依然流畅的原因。你的图像不会发送到服务器,不会被存储,我们也永远看不到它 - 而且取消是真的终止工作,而不是把任务丢在别人的机器上继续跑。
为什么会有 4000 像素的限制?
因为超过之后没人受益。描摹开销比像素数增长得更快,而多出来的细节大多只增加路径而不增加保真度 - 更大的输入只会产出一个更大、更慢、看起来却差不多的 SVG。任一边超过这个值的图像会先被缩小,面板会告诉你何时发生了这件事。
您可能还需要
有问题吗? 报告问题