纯代码生成 SVG 矢量图并转 PNG,无需外部图形库,适合快速绘制头像、Logo 和定制插画
说明:
## 核心用法
svg-draw 是一款基于纯 SVG 代码和系统工具 rsvg-convert 的图像生成技能,无需依赖 PIL、ImageMagick 等重型图形库。用户通过编写 XML 格式的 SVG 代码创建矢量图形,再通过内置脚本转换为 PNG 位图输出。
**工作流程:**
1. 直接编写或修改 SVG 模板代码(提供龙、龙虾等预设模板)
2. 使用 `write()` 将 SVG 内容写入文件
3. 调用 `/root/.openclaw/workspace/skills/svg-draw/scripts/svg_to_png.sh` 完成格式转换
## 显著优点
– **零外部依赖**:仅依赖系统自带的 rsvg-convert,无需安装复杂图形库
– **完全可编程**:SVG 作为文本格式,可动态生成、参数化调整
– **模板化设计**:提供 dragon、lobster 等完整模板,降低上手门槛
– **跨平台兼容**:SVG 是 Web 标准格式,生成后可二次编辑
– **体积轻量**:矢量图可无损缩放,输出尺寸灵活可控
## 潜在缺点与局限性
– **学习曲线陡峭**:需要掌握 SVG 语法(path、viewBox、坐标系等),非可视化操作
– **调试成本高**:无实时预览,需反复转换查看效果
– **复杂图形困难**:精细插画、照片级效果难以纯代码实现
– **字体依赖风险**:系统字体缺失可能导致文字渲染异常
– **功能边界明确**:仅限 SVG 创建与格式转换,无图像编辑、滤镜、合成能力
## 适合人群
– 开发者/技术人员:习惯代码工作流,需要程序化生成图形
– 快速原型场景:内部工具、测试数据、简单头像/标识生成
– 教育资源:学习 SVG 语法的实践环境
## 常规风险
– **路径注入风险**:若动态拼接 SVG 内容且未转义用户输入,可能导致 XML 实体注入
– **文件覆盖风险**:write() 操作直接覆盖目标路径,需确认权限
– **rsvg-convert 依赖**:目标系统若未安装 librsvg 工具链,转换将失败
– **分辨率误判**:默认 400×400 可能不满足打印/高清场景需求








