PNG 转 SVG
将 PNG 转换为真正的矢量 SVG(路径),而非嵌入 PNG 的 SVG。
所有脚本位于此文件旁边的 scripts/ 目录中;请使用完整路径运行。
Windows: 使用 python 或 py -3,不要使用 python3(通常只会打开 Microsoft Store)。
Windows 上的准备工作、渲染器及常见问题:references/windows.md。
工作步骤
-
检查素材。 确保 PNG 文件可以打开。不要转换其他品牌拥有的徽标或角色,除非用户明确有权使用它们。
-
在转换前询问变体。 在用户选择变体之前,不要运行 SVG 生成过程。 运行:
python scripts/png2svg.py input.png --list-optionssource_type: color→ 询问他们是否需要 原始颜色、白色、黑色 或这些选项的组合。source_type: mono→ 询问他们是否需要 黑色、白色 或两者。
如果用户请求转换但未指定变体,则在检查选项后停止并提问;不要仅仅因为没有选择就选择
default。在用户回答后继续。如果用户明确要求直接转换,则使用default。 每个变体的详细信息:references/variants.md。 -
在用户选择后转换。 仅在
--variants中使用用户选择的变体,例如:python scripts/png2svg.py input.png out_dir --variants original,white --compare如果用户要求 favicon 或应用程序图标,则添加--icons。 对于单个文件夹,将input.png替换为文件夹名称。 -
读取 JSON 报告。 对于每个变体,有
similarity_pct和audit。similarity_pct≥ 97 且audit.verdict=ok→ 完成。- 否则,根据
references/tuning.md调整--colors或--speckle,最多尝试 3 次。 similarity_pct: null表示没有渲染器:结果仍会生成,但需说明视觉检查已跳过。- 如果能够查看图像,请打开
*_compare.png(左侧为目标,右侧为结果)。
-
提交。 提供每个变体的 SVG 文件(如果要求,还包括
icons/文件夹),并附上简短摘要:方法、相似度、大小以及来自notes或audit.issues的备注。
规则
- 永远不要更改原始文件;始终写入输出文件夹。
- 白色/黑色变体是单色轮廓。形状内的不同颜色细节会合并;如果徽标有此类细节,请告知用户。
- 附加脚本:
scripts/svg_audit.py(审核任何 SVG)、scripts/render.py --which(检查可用的渲染器)、scripts/variants.py(从现有 SVG 生成变体)。 - AION 仪表板中的复选框集成:
references/aion-integration.md。