SuperAPI AI 工具集

lovstudio-png2svg

设计与创作

查看项目

更新于 10-15 08:29

技能介绍

用途

lovstudio-png2svg 是一个将 PNG 图片转换为高质量矢量 SVG 的技能,支持去除白色背景。其处理链路为:PNG → magick(去白底 + alpha 阈值)→ vtracer(样条曲线矢量化)→ svgo(压缩)→ SVG。

主要能力

  • 去除白色背景并使用 alpha 阈值处理(可选,通过 KEEP_BG 控制)。
  • 使用 vtracer 进行样条曲线矢量化,资料说明其比 potrace 更平滑。
  • 使用 svgo 对 SVG 路径进行压缩优化。
  • 转换完成后返回 SVG 文件路径并报告文件大小。

使用方式

输入参数:

  • INPUT_PNG:输入 PNG 文件路径(必需)
  • OUTPUT_SVG:输出 SVG 路径(默认:同名 .svg)
  • KEEP_BG:是否保留背景(默认:false,去除白色背景)

执行步骤:

Step 1:预处理(去白底),当 KEEP_BG=false 时执行:

magick INPUT_PNG \
  -fuzz 15% -transparent white \
  -channel A -threshold 50% +channel \
  INPUT_PNG.temp.png

Step 2:矢量化:

vtracer --input INPUT_PNG.temp.png --output OUTPUT_SVG \
  --mode spline \
  --filter_speckle 8 \
  --color_precision 8 \
  --corner_threshold 120 \
  --segment_length 6 \
  --path_precision 5

Step 3:压缩优化:

npx svgo OUTPUT_SVG -o OUTPUT_SVG --multipass

Step 4:清理:

rm -f INPUT_PNG.temp.png

输出格式:

✓ PNG → SVG 转换完成
输入: {INPUT_PNG}
输出: {OUTPUT_SVG}
大小: {file_size}

依赖安装

首次使用前确保已安装:

brew install imagemagick
cargo install vtracer
npm install -g svgo  # 或使用 npx

参数调优

参数 作用 调大效果
filter_speckle 过滤小斑点 更干净
corner_threshold 角点阈值 更平滑
segment_length 线段长度 更平滑
color_precision 颜色精度 更准确

适用场景

适合需要将 PNG 位图转换为可缩放 SVG 矢量文件的场景,例如图标或图形素材的矢量化处理。

限制

资料未提供收费、价格、平台支持范围及具体效果上限等信息,暂未提供。实际转换效果受输入图片质量与参数设置影响。