开源项目推荐:悟空图片转 SVG 工具 —— 上传位图,一键变干净矢量图

开源项目推荐:悟空图片转 SVG 工具 —— 上传位图,一键变干净矢量图

一句话:把开源 Vecto 矢量化引擎包上一个浏览器界面,选图即转、拖参即看,导出 SVG/PNG。

GitHub:goku-open/goku-image-to-svg-tool | ⭐ 319 | MIT 协议

在线直接用:image-to-svg.streamlit.app(免安装)

悟空工具实拍:原图 / 矢量分割对比 + 右侧参数面板(仓库官方 banner)
悟空工具实拍:原图 / 矢量分割对比 + 右侧参数面板(仓库官方 banner)

它是什么?解决什么问题?

Logo、图标、手绘稿……位图放大就糊,想改颜色还得重画。转矢量(SVG)本是刚需,但现有方案都不顺手:

  • Vectorizer.AI:效果好,但收费、要上传到别人服务器;
  • Illustrator 图像描摹:要装庞然大物,还要学参数;
  • Inkscape / 命令行 vecto:免费,但一个笨重、一个要敲命令。

这个项目就是”把 Vecto 开源引擎穿上衣服”:浏览器打开,拖图进去,拖几个滑块,下载 SVG。全程本地跑,不上传、不收费、不学软件。

核心优势:为什么值得 Star

1. 零门槛:上传即转,改参即重转

没有”先学再用”。图片拖进去自动 trace,右侧调色板、风格、细节滑块一动,结果立刻刷新。给设计师和运营同学用的,不是给工程师用的。

📷 配图 2: 动图最佳(GIF):上传 → 自动出结果 → 拖滑块变化。录 10 秒就行,这是全文最值钱的一张图。

2. 参数零阉割,对齐 Vecto 原版

很多 Web 套壳工具会砍参数,这个没有:调色板(自动/指定颜色数,还带色块预览)、风格、细节、诊断信息,和 Vecto CLI 完全对齐。懂行的人可以直接按 CLI 经验调。

3. 三视图对比,导出前先看清

原图 / 矢量 / 分割视图一键切换 + 滑块拖拽对比。矢量化最怕”转完才发现细节丢了”,这个设计就是防这个的。确认效果后再导出 SVG,或按倍率渲染成 PNG。

分割视图:滑块拖拽对照原图与矢量结果
分割视图:滑块拖拽对照原图与矢量结果

4. 轻 + 开源 + 能自己部署

  • Streamlit 单应用,一条命令跑起来,二进制引擎随仓库带(tools/vecto v0.4.2);
  • MIT 协议,可商用、可魔改;
  • 官方还给了 Streamlit Community Cloud 免费托管,连服务器都不用买;
  • 中英双语,代码里文案、逻辑、页面三分开(locales/、utils.py、pages_content/),二开结构干净,还强制配套测试(pytest 全绿才合)。
对比项 悟空转SVG Vectorizer.AI Illustrator 描摹 Inkscape vecto 裸用
开源免费 ✅ ❌ ❌ ✅ ✅
浏览器即用 ✅ ✅ ❌ ❌ ❌
上传即转 ✅ ✅ ❌ ❌ ❌
分割滑块对比 ✅ 部分 ❌ ❌ ❌
中英双语 ✅ 部分 部分 ✅ ❌

它是怎么制作的?(技术原理,一段话)

Streamlit 前端 ──subprocess──▶ tools/vecto trace(位图 → SVG)──▶ 解析 stats
      ▲                                                              │
      └──────────── 滑块对比 + 导出 SVG / PNG ◀──────────────────────┘

矢量化核心是 Vecto(.NET,MIT):ImageSharp 解码图片、多边形拟合生成矢量路径。这个项目本身不做算法,只做三件事:Web 交互 + 参数透传 + 三视图对比导出。这也是它代码量小、29 个 commit 就能打磨可用的原因——把专业的事交给专业引擎,自己只做体验层。

怎么使用?三步

方式一:在线用(推荐,10 秒)

打开 image-to-svg.streamlit.app,拖图 → 调参 → 下载。完事。

方式二:本地跑

git clone https://github.com/goku-open/goku-image-to-svg-tool.git
cd goku-image-to-svg-tool
pip install -r requirements.txt
streamlit run streamlit_app.py

打开 http://localhost:8501。支持 PNG / JPG / BMP / GIF / TGA / TIFF / WebP / PBM / PPM,上传即自动转换。

使用流程(四步)

  1. 上传图片:拖进去就行,自动出第一版;
  2. 调参数:颜色数(色块预览看着调)、风格、细节,改完即时重转;
  3. 看效果:拖滑块,原图/矢量/分割对照,放大看边缘干不干净;
  4. 导出:SVG 直接下;要位图就选倍率渲染 PNG。
矢量 vs 位图放大示意(AI 配图):矢量曲线无限放大仍光滑
矢量 vs 位图放大示意(AI 配图):矢量曲线无限放大仍光滑

适合谁、边界在哪

适合 说明
前端/设计 Logo、图标转 SVG,改色、缩放无压力
运营/自媒体 配图、手绘稿转矢量,放大做海报不糊
想学 Streamlit 的人 代码小、结构清,照着改一个自己的工具
实话实说 说明
照片级复杂图别指望 矢量化适合色块分明的图(Logo/插画/图标),照片转完路径巨大还失真,这是所有 trace 工具的共性
大图吃内存 作者实测单次峰值 60~490MB,个人用没事,拿去做批量服务要自己压测

结语

好工具不一定大。这个项目 29 个 commit、单文件引擎 + 一个 Streamlit 页面,解决的却是真实高频的痛点:位图转矢量这件事,值得一个免费、本地、打开即用的答案。

仓库:github.com/goku-open/goku-image-to-svg-tool(MIT;引擎 © Daniel Mevit)。觉得好用可以去请作者的两只猫吃罐头——README 里有链接,我就不贴了。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注