ReCloud Studio 多项目品牌图标的源文件与多尺寸导出聚合仓库。
projects/<project>/ # 各项目图标源文件(SVG,可附原始位图)
output/<project>/ # 生成的多尺寸 PNG + SVG 副本
output/manifest.json # 资产清单元数据
projects/recloud/:ReCloud 主品牌(icon.svg/icon.png/icon-text.svg/icon-text-studio.svg)projects/webhooker/:WebHooker(icon.svg)main.py:遍历projects/,将每个*.svg导出到output/<project>/并生成manifest.jsonmain_text.py:生成 ReCloud 横排字标 SVG(projects/recloud/icon-text*.svg)flake.nix/pyproject.toml:Nix + uv 开发环境
nix develop # 提供 uv / cairo / librsvg / potrace / imagemagick或直接使用已有的 uv 虚拟环境(含 cairosvg)。
uv run main_text.py # 先重新生成字标 SVG(仅 ReCloud)
uv run main.py # 导出所有项目到 output/,并写入 manifest.jsonmain.py 对每个 projects/<project>/*.svg 输出 output/<project>/<name>-{16,32,48,64,96,128,256,512}.png,PNG 宽度为尺寸值、保持比例,同时复制一份 <name>.svg。
矢量轮廓由 potrace 从位图提取,再替换为蓝渐变填充:
magick projects/recloud/icon.png -alpha extract -threshold 30% -negate shape.pbm
potrace shape.pbm -s --opaque --alphamax 1 --turdsize 2 # 得干净轮廓,替换 fill 为渐变ReCloud 横排 logo lockup,含 ReCloud 与 ReCloud Studio 两种字标,文字使用 DejaVu Sans Bold,填充品牌蓝 #1E63CE。
main_text.py:用projects/recloud/icon.svg的轮廓配合 ImageMagick 生成projects/recloud/icon-text.svg/icon-text-studio.svg:矢量 lockupoutput/recloud/icon-text-{尺寸}.png/output/recloud/icon-text-studio-{尺寸}.png:由main.py导出
- 创建
projects/<project>/icon.svg - 运行
uv run main.py