你是否曾遇到这样的场景:手头有一张由Visio导出的PNG或JPG格式流程图,急需将其快速转换为可编辑、可版本管理的Mermaid代码,而不是从头重新绘制一遍。在交接老旧系统文档、逆向梳理遗留业务逻辑时,这一需求尤为关键——能直接节省大量时间。
这套流程的核心思路是:借助Codex的图像理解接口,让工具自动识别节点与连接关系,再由人工进行一轮校准,最终导出标准的Mermaid代码。下面直接进入操作细节。
准备原始图片文件
图片质量是第一步。务必确保节点文字清晰可辨,背景尽量保持纯白或浅灰。需避免使用带有阴影、模糊边框或压缩失真的截图。如果原始文件是Visio导出的PDF,建议先通过Adobe Acrobat或Mac系统预览将其导出为300dpi的PNG,不要直接截取PDF页面。
文件命名也有讲究:最好不含中文或空格,例如login_flow_v2.png。部分OCR引擎对中文路径的解析会出现异常,直接跳过识别步骤——这点很容易踩坑。
上传到Codex图像理解接口
打开本地Codex客户端(Windows运行Codex Desktop 2.3及以上版本,Mac需M1/M2芯片配合Ventura及以上系统)。点击左上角的「Image to Code」,拖入准备好的PNG文件。等待大约8~15秒,当界面右下角显示「✅ Layout parsed」后,即可进入结构校验页面。
这里有个关键提醒:不要急着点击「Generate Mermaid」,先检查顶部识别出的节点数量是否与原图一致。如果少于80%,说明图片分辨率可能低于1280×720,或者存在大面积色块遮挡,此时需要重新准备图片。
人工校准关键节点与连接关系
系统默认将矩形识别为process(流程)节点,菱形为decision(决策)节点,圆角矩形为start/end(开始/结束)节点。实际使用中常会出现误判——例如带有图标的“审批”节点被当成subgraph(子图),或者虚线箭头被忽略。这些都需要手动干预:
- 方法一:点击任意节点,在右侧属性面板修改
type字段,从process改为decision或state; - 方法二:拖动连线端点到目标节点边缘,松手后自动生成
-->语法。如果连线穿过文字区域,Codex会自动插入click指令并标红提示——此时必须手动删除该click行,否则Mermaid渲染会报错; - 方法三:在底部的「Raw Edits」文本框中直接增删link语句,比如补上
C -->|驳回| A,补全缺失的分支。
这一步的精细程度直接决定了最终代码的可用性,多花几分钟非常值得。
导出标准Mermaid流程图代码
点击「Export as Mermaid」,选择「flowchart TD」格式(不选LR,因为Visio默认纵向布局),勾选「Include comments」,然后点击「Copy to clipboard」。
粘贴到VSCode中,确认首行是flowchart TD且没有中文字符或全角符号。如果出现❑或□,说明图片中的文字使用了非UTF-8字体(如微软雅黑Bold),需要返回上一步,在校准界面点击「Re-OCR with fallback font」重新识别。
最后,直接将代码粘贴到Obsidian或Confluence的Mermaid代码块中,即可实时渲染。整个过程下来,从图片到可编辑代码,通常能控制在10分钟以内——比手工重画高效太多了。
