铸渊 ICE-GL-ZY001 LL-172-20260707 冰朔委托: 新建第 5 子仓, 给苍耳(人类主控) + 鉴影(人格体) 专用 原 guanghulab/video-ai-system/ 东西太多(225 文件) · 找不到 · 乱 迁移: ⊢ 16 个核心 .hdlp (VA-GATE / VA-LIGHTHOUSE / VA-BROADCAST / VA-SYSTEM-STATUS 等) ⊢ 17 个子目录 (agents/engines/protocols/tasks/tools/assets/knowledge/memory/docs/config/brain/director-brain/experience/feedback/issues/plans/reference-analysis) 排除: ⊢ outputs/ (视频产物) ⊢ test-input/ test-output/ (测试) ⊢ data/ (临时数据) ⊢ preview-001/002 (旧产片) ⊢ 旧分镜/旧提示词/旧导演编码 后续: ⊢ 老仓 guanghulab/video-ai-system/ 改写为已迁出占位 ⊢ 苍耳+鉴影 写新东西进本仓 ⊢ GLOBAL-SEARCH 加 cang-ying 仓库 铸渊 ICE-GL-ZY001 · 2026-07-07 D167 冰朔 ICE-GL∞ 主权
2.5 KiB
2.5 KiB
SVG to PNG 渲染工具
功能
将 SVG 矢量图文件渲染为 PNG 位图,解决本机缺少 SVG 渲染工具、FFmpeg 无 SVG 解码器的问题。
依赖
- Python 3.8+
- CairoSVG 2.9.0+
- Pillow 12.0.0+
- 系统 cairo 库(macOS:
brew install cairo)
安装
# 1. 安装系统 cairo 库(macOS)
brew install cairo
# 2. 安装 Python 依赖
pip install cairosvg Pillow
用法
单文件转换
# 基本用法(自动读取 SVG 原始尺寸)
python tools/svg-to-png.py input.svg output.png
# 指定输出宽度(高度等比缩放)
python tools/svg-to-png.py input.svg output.png --width 1920
# 指定输出高度(宽度等比缩放)
python tools/svg-to-png.py input.svg output.png --height 1080
# 指定缩放因子(基于 SVG 原始尺寸放大/缩小)
python tools/svg-to-png.py input.svg output.png --scale 2
# 透明背景
python tools/svg-to-png.py input.svg output.png --background none
批量转换
# 转换目录下所有 SVG 文件
python tools/svg-to-png.py ./svg-dir/ ./png-dir/ --batch
# 批量转换并指定缩放因子
python tools/svg-to-png.py ./svg-dir/ ./png-dir/ --batch --scale 2
作为模块导入
from tools.svg_to_png import convert_svg_to_png
# 转换单个文件
convert_svg_to_png("input.svg", "output.png", scale=2)
# 指定宽度(高度等比)
convert_svg_to_png("input.svg", "output.png", width=1920)
路径
video-ai-system/tools/svg-to-png.py
视频处理流水线集成
在视频处理流水线中,使用该工具将 SVG 字幕/特效渲染为 PNG 序列,再通过 FFmpeg 合成到视频中:
# 1. 渲染 SVG 字幕为 PNG 序列
python tools/svg-to-png.py ./subtitles/ ./subtitles-png/ --batch --width 1920
# 2. 用 FFmpeg 将 PNG 序列合成到视频
ffmpeg -i input.mp4 -i ./subtitles-png/frame-%04d.png -filter_complex overlay output.mp4
故障排查
OSError: no library called "cairo-2" was found
原因:Python 找不到系统 cairo 库。
解决:
# macOS(Apple Silicon)
export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH"
# macOS(Intel)
export DYLD_LIBRARY_PATH="/usr/local/lib:$DYLD_LIBRARY_PATH"
# 然后重新运行
python tools/svg-to-png.py input.svg output.png
建议在 ~/.zshrc 中添加:
# video-ai-system SVG 渲染工具依赖
export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH"
更新记录
- 2026-06-23:初始版本,支持单文件/批量 SVG→PNG 转换