Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vsdx-replicate

位图流程图 → 可编辑 Visio (.vsdx) 的 1:1 复刻技能,面向 ZCode / Claude Code 类 Agent 环境。

给定一张位图截图或矢量导出图,按以下管线产出外观 1:1、全部形状独立可选中可编辑的 .vsdx:

像素级提取(调色板→色块bbox→线网→放大目检) → 位图素材裁剪
→ Visio COM 渲染(几何+纯文本) → XML 后处理(富文本/字体/粗斜体/下标)
→ PDF 栅格化分区对比 → 迭代修正 → 交付

核心价值不在"生成 vsdx",而在沉淀了这一流程里所有的坑:pywin32 驱动 Visio COM 的坐标/单位约定、多 run 富文本必须走 OPC XML 后处理(COM 的 CharProps 浮点值会被强转整型、颜色 >32767 溢出 I2)、虚线/跳线(hop)/箭头起止的线网检测方法、禁用 page.Export 的对比链路(Visio 会拉伸到缓存画布)等。

效果演示

经典 Transformer 架构图(位图输入)与 Visio 复刻渲染(.vsdx 导出 PDF)整页对比:

before-after

细节特写(左 = 原图,右 = 复刻)—— 编码器容器与虚线残差框、V/K/Q 分配支路、掩码注意力、位置编码图标:

details

主示例复刻产物共 140 个形状全部独立可选中/可编辑;整体像素差 mean 8.4,px>60 占比 4.4%(主要为字体渲染差异),文字逐字形位置误差 1-2px。可下载 examples/transformer-architecture/replica.vsdx 用 Visio 打开验证。

示例图片:dvgodoy 重绘版 Transformer 架构图(源自 "Attention Is All You Need", Vaswani et al. 2017), Wikimedia Commons,CC BY 4.0。

另附第二示例 examples/tarpon-flowchart/:PLOS Computational Biology 论文流程图 (Deimler et al. 2026, CC BY 4.0),含判断菱形、曲线箭头、彩色圆角框等元素。

目录结构

vsdx-replicate/
├── SKILL.md                    # 完整方法论与全部踩坑记录(Agent 技能入口)
├── scripts/                    # 参考实现(对真实图跑通)
│   ├── extract.py              # Stage 1:调色板 + 色块 bbox 提取(近邻色并查集合并)
│   ├── trace2.py               # 线网追踪:实线/虚线/箭头/跳线(hop)
│   ├── render.py               # Stage 3:COM 渲染,几何 + 纯文本 + runs dump
│   ├── patch_text.py           # Stage 4:vsdx OPC XML 富文本([vsdx] [runs] 参数,字间距)
│   └── export_compare.py       # Stage 5:PDF 导出 → 栅格化 → 差异对比(--src/--vsdx)
├── examples/
│   ├── transformer-architecture/   # 主示例:Transformer 架构图(CC BY 4.0)
│   └── tarpon-flowchart/           # 第二示例:PLOS 论文流程图(CC BY 4.0)
└── docs/                       # 效果对比图

快速开始(以主示例为例)

pip install pywin32 opencv-python pillow pymupdf

cd examples/transformer-architecture
python render_example.py                                                  # 几何 + 纯文本
python ../../scripts/patch_text.py out/replica.vsdx out/text_runs.json    # 富文本
python ../../scripts/export_compare.py --src source.png --vsdx out/replica.vsdx

复刻新图:把 scripts/ 拷到新目录,替换 render.py 里的 SRC 路径、页面宽高 W/H 与场景数据(形状/线网/文本坐标)即可。

环境要求

  • Windows + 本机安装 Microsoft Visio(COM 自动化是渲染核心)
  • Python 3.x,依赖见 requirements.txt

无 Visio 的机器可改走手写 OPC XML 路线(参考 Microsoft [MS-VSDX] 规范),本技能不适用批量转换场景(请用 drawio CLI -f vsdx)。

验收标准(详见 SKILL.md)

  • Visio 打开无修复提示,全部形状独立可选中/可编辑
  • 分区对比:位图区 <3%,线网/容器错位 ≤2px
  • 文字逐字一致,粗斜体/下标/竖排/灰字齐全,无换行溢出

License

MIT(代码与文档);示例论文配图按其原许可 CC BY 4.0 使用并署名。

About

Bitmap flowchart -> editable Visio (.vsdx) 1:1 replication skill for ZCode/Claude Code agents

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages