用途:将原始 Logo 图片处理成标准化的 256x256 PNG,供 vault 协议元数据使用;会从可用 Logo 中自动选择最接近正方形的变体,并在需要时补齐边距,输出完美正方形。
必要输入:输入文件夹(原始 Logo 所在目录,例如 eth_defi/data/vaults/original_logos/protocol-name/);输出文件夹(处理后 Logo 保存目录,例如 eth_defi/data/vaults/formatted_logos/);变体偏好(可选,generic、light、dark 或 all)。缺少必填输入时需先向用户询问。
前置条件:安装 Python 依赖 poetry install --with dev,并安装 Python Pillow,用于检测图像格式、尺寸和透明度。
术语:品牌标记(不含品牌文字的 logo mark)、文字标记(含品牌文字的 word mark);light 指深色或透明背景上的白色文字,dark 指白色或透明背景上的深色文字。
主要流程:第一步清点输入 Logo,按文件名分类变体({slug}.generic.{ext}、{slug}.light.{ext}、{slug}.dark.{ext}),检查宽高比与透明背景,优先使用品牌标记;第二步选择变体,按接近 1.0 的正方形程度排序,同分时优先透明变体,再按 generic>light>dark,用户指定则优先用户选择;第三步处理,命令示例:export INPUT_IMAGE=/path/to/original/logo.png、export OUTPUT_IMAGE=/path/to/output/logo.generic.png、poetry run python scripts/logos/post-process-logo.py,脚本会按需把 SVG 转 PNG、补透明边距、去背景、为深色背景重新着色、裁剪多余边距并缩放到 256x256;第四步报告结果,列出输出文件、尺寸、大小和问题。输出命名为 {protocol-slug}/light.png 或 {protocol-slug}/dark.png。
限制:SVG 转换失败时需检查是否为有效 XML,复杂 SVG 可能渲染不正确;去背景对复杂边缘或渐变可能不理想,可提供更高分辨率输入;已有透明度的 Logo 会跳过去背景。