用途:将 PNG 图片转换为高质量矢量 SVG,可选去除白色背景。工具链为 PNG → magick(去白底+alpha 阈值)→ vtracer(样条曲线)→ svgo(压缩)→ SVG。
主要能力:ImageMagick 的 magick 负责去除白色背景并做 alpha 阈值处理;vtracer 做样条曲线矢量化,官方称比 potrace 更平滑;svgo 做 SVG 路径压缩优化。
使用方式:输入 INPUT_PNG(必需)、OUTPUT_SVG(默认同名 .svg)、KEEP_BG(默认 false,去除白色背景)。步骤一预处理去白底:magick INPUT_PNG -fuzz 15% -transparent white -channel A -threshold 50% +channel INPUT_PNG.temp.png;步骤二矢量化: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;步骤三压缩:npx svgo OUTPUT_SVG -o OUTPUT_SVG --multipass;步骤四清理临时文件。输出返回 SVG 路径并报告文件大小。
依赖安装:brew install imagemagick、cargo install vtracer、npm install -g svgo(或使用 npx)。
参数调优:filter_speckle 过滤小斑点,调大更干净;corner_threshold 角点阈值,调大更平滑;segment_length 线段长度,调大更平滑;color_precision 颜色精度,调大更准确。
运行上下文:运行前读取 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文;字段解析顺序为当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。只使用 Manifest 声明的字段。required 字段缺失时按 Manifest 问题配置向用户提出一个聚焦问题,用户明确同意后再保存回答。报错提供可复制的 context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。
反馈闭环:用户提出修改意见时,先判断是 task-specific(仅本次)还是 reusable(可跨任务复用)。task-specific 只改当前任务,不改 Skill;reusable 先确定作用域,领域规则先更新对应 canonical Skill,适用于所有 Skill 的规则先更新共享规范,完成规则更新、版本、lint 与分发核验后再应用到当前任务。reusable 修改会使此前的确认失效,完成当前产物修改和回读后必须停下等待用户下一步指示,不自动进入发布、提交或其他外部写入。
限制:资料未提供收费、价格、平台支持范围与效果保证等信息。