博客
简体中文

图片转SVG — PNG/JPG 转矢量图

可调颜色数和细节的位图转 SVG 矢量描摹工具

在浏览器中处理 · 不上传任何内容

图片会被减少到几种颜色,再用直线和曲线描出每个色块的轮廓。适合 logo、图标、文字和简单的插画。照片会变成色调分离的效果,文件也可能非常大;渐变和柔和的边缘无法原样保留。

把要转换为 SVG 的图片拖到这里

一张 JPG、PNG、WebP、GIF 或 BMP(最大 50 MB)。也可以用 Ctrl+V(Mac 上为 ⌘V)粘贴。不会上传任何内容。

SVG 最多使用的颜色数。logo 可试试 2–8,插画用 16 或更多。

数值越高,轮廓越贴合,小斑点也会保留,但文件更大、耗时更长。1 最简洁,5 最接近原图。

功能简介

这个工具把位图(PNG、JPG、WebP、GIF 或 BMP)转换为 SVG 矢量图。位图由像素网格组成,放大后会出现马赛克;SVG 记录的是线条和曲线,放大到任何尺寸都清晰。原始 logo 文件丢了、只剩一张小 PNG,需要网站图标,或者需要用于激光切割、刺绣、贴纸的矢量图时,都能派上用场。

先了解它的局限:图片会被减少到几种颜色,再描出每个色块的轮廓,所以渐变、柔和的边缘和照片质感无法原样保留。图案越扁平,结果越干净。

使用方法

  1. 拖入图片,或点击 选择图片。也可以用 Ctrl+V 粘贴。
  2. 设置 颜色数:黑白 logo 用 2,几种颜色的 logo 用 4–8,插画用 16 或更多。
  3. 在 1 到 5 之间选择 细节。数值越高,轮廓越贴合。
  4. 对比预览和原图,然后点击 保存 SVG 或复制代码。

工作原理

  • 减色:每个像素被分配到采样得到的调色板颜色,再经过三轮细化。同一张图片和同样的设置,总是得到相同的 SVG。
  • 描摹:色块的边缘用直线和二次曲线拟合。细节 1 允许 4 px 误差,并去掉轮廓点少于 32 个的形状;细节 5 的误差在 0.25 px 以内,保留小斑点。
  • 分析尺寸:为了速度,长边在细节 1 时缩小到 300 px,细节 3 时 700 px,细节 5 时 1400 px,坐标再按原始尺寸放大回去。
  • 清理:去掉完全透明颜色的形状,并设置原始宽高和 viewBox。
  • 描摹使用 imagetracerjs(公有领域)。

示例

原图 设置 结果
黑色文字 logo PNG,800×300 2 色,细节 3 白底黑字,文件很小
四色图标 PNG,512×512 4 色,细节 4 4 种颜色,曲线平滑
风景照片 JPG,4000×3000 16 色,细节 2 海报效果,文件比 logo 大得多

要把矢量图转回 PNG,请用 SVG 转 PNG;需要整套网站图标,可以试试网站图标(favicon)生成器。

常见问题

照片能转成 SVG 吗?

可以,但会变成几块平涂的色块,像海报一样;细节调高时文件可能达到几 MB。照片更适合保留为 JPG 或 WebP,这个工具适合 logo、图标、文字和简单的插画。

结果里有很多小斑点。

降低细节可以去掉小色块,减少颜色数可以合并相近的颜色。如果原图是噪点多的 JPG,2–8 种颜色通常最有效。

透明背景会保留吗?

会。完全透明的区域不会生成形状,在 SVG 中保持空白。半透明区域会带有对应颜色的不透明度。

保存的 SVG 是多大尺寸?

它带有原图的像素宽高和 viewBox,无论在网页还是设计软件里,都能清晰地缩放到任意尺寸。

我的图片会被上传吗?

不会。分析和描摹都在浏览器内完成。

没找到想要的工具?