You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PlantUML序列图中嵌入本地图片?

PlantUML序列图嵌入本地非sprite图片方案

可以正常嵌入本地存储的jpg、png、gif等非sprite格式普通图片,你之前触发语法错误是插入位置错误导致的:序列图语法中,;和:之间的区域属于箭头结构定义区,仅支持填写序号、箭头样式、返回标记等结构类参数,不支持Creole富文本解析,图片标签必须放在支持富文本的内容区域内。

具体实现方式

  • 嵌入消息文本
    直接在消息行的:之后,用Creole图片标签引入本地路径即可,支持相对于当前puml文件的相对路径,也支持系统绝对路径:

    @startuml
    ' 相对路径示例
    Alice -> Bob: <img:./assets/user_avatar.png> 带本地图片的交互消息
    ' Windows绝对路径示例,注意将原生反斜杠替换为正斜杠避免解析错误
    Bob --> Alice: <img:D:/project/demo/result_icon.png> 处理完成
    @enduml
    

    注意:本地文件路径尽量不要包含中文、特殊空格,避免路径解析失败。

  • 嵌入注释块
    如果不需要把图片和消息绑定,可以放在各类注释块中,绑定在参与者侧或者消息流上方/下方:

    @startuml
    participant User
    note right of User: <img:./assets/user_tag.png>\n普通用户
    User -> AuthService: 提交登录请求
    note over AuthService: <img:./assets/auth_logic.png>\n权限校验逻辑
    AuthService --> User: 返回登录凭证
    @enduml
    
  • 作为独立悬浮元素放置
    如果需要把图片放在图内任意位置(比如放图例、补充说明图),可以用浮动块承载:

    @startuml
    User -> OrderService: 提交订单
    float right: <img:./assets/order_legend.png> 状态图例
    @enduml
    

常见语法错误规避

不要把Creole富文本标签(图片、加粗、列表等)放在以下结构定义区域:

  1. 参与者定义的as别名前后
  2. 箭头的->/-->标记和:消息起始标记之间,包括你之前尝试的;序号分隔符附近
  3. 条件块、循环块的语法关键字行内

内容的提问来源于stack exchange,提问作者user3555809

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:12:14