# Plantuml Image

> 将 PlantUML 内容渲染为 JPG、PNG、SVG 图片，固定 200 DPI，并使用 C4_blue theme

- Skill: `spaceyuan/plantuml-image` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add spaceyuan/plantuml-image`
- Raw SKILL.md: https://api.skillmd.com/api/skills/spaceyuan/plantuml-image/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: spaceyuan (https://skillmd.com/u/spaceyuan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/spaceyuan/plantuml-image

---


# PlantUML Image Skill

## What I do

- 调用本地 Python 脚本渲染 PlantUML 内容为图片
- 固定输出 `PNG`、`JPG`、`SVG`
- 固定使用 `200 DPI`
- 固定使用 `c4_blue` theme
- 使用本机 `plantuml.jar`：`/Users/apple/Downloads/plantuml.jar`

## When to use me

当用户需要把 PlantUML `.puml` / `.plantuml` / `.iuml` 文件转换成图片，且要求清晰度为 200 DPI、主题为 `c4_blue` 时使用。

如果用户目标是“最快本地渲染，不经过 AI 调度”，优先直接运行同目录下的 `plantuml_image.py` 或 `plantuml-image` 包装脚本，不要走 skill 触发链。

## Invocation format

支持两种输入方式：

1. 文件模式（推荐）

`plantuml-image @path/to/diagram.puml`

2. Inline 模式

`plantuml-image:`

随后直接粘贴 PlantUML 内容。

## Input contract

- 文件模式下，`@` 后必须紧跟文件路径
- 文件后缀优先识别为 `.puml`、`.plantuml`、`.iuml`
- 文件必须可读
- 若使用 Inline 模式，先将内容写入临时 `.puml` 文件，再进行渲染

## Output contract

- 输出文件必须与源文件同目录
- 基础文件名保持一致，仅更换扩展名
- 必须同时生成：`.png`、`.jpg`、`.svg`
- 输出结果要在最后明确列出完整路径

## Rendering rules

1. 渲染逻辑由脚本 `plantuml_image.py` 承担，skill 只负责准备输入并调用脚本
2. 调用前先确认 `java` 可用
3. 调用前先确认 `/Users/apple/Downloads/plantuml.jar` 存在
4. 脚本内部必须固定使用：
   - `-DPLANTUML_DPI=200`
   - `-theme c4_blue`
   - `-charset UTF-8`
5. 文件模式下默认输出到源文件同目录，不额外指定输出目录
6. 按顺序生成 `png`、`jpg`、`svg`

## Command template

使用 bash tool 调用 Python 脚本，`INPUT_FILE` 由上下文替换：

`python3 /Users/apple/.config/opencode/skills/plantuml-image/plantuml_image.py INPUT_FILE`

Inline 模式示例：

`python3 /Users/apple/.config/opencode/skills/plantuml-image/plantuml_image.py --stdin --output-dir <dir>`

然后将 PlantUML 内容通过 stdin 传入。

## Error handling

- 若文件不存在或不可读，直接提示用户修正路径
- 若 `java` 不可用，直接中止并说明环境缺失
- 若 `plantuml.jar` 不存在，直接中止并说明固定路径无效
- 若 PlantUML 语法报错，透传核心错误信息给用户

## Final response format

输出结果时只需给出简洁确认：

```
已生成：
- PNG: <path>
- JPG: <path>
- SVG: <path>
```

