一、背景
上文工作利用diagrams渲染mermaid为xml文件
利用diagrams渲染mermaid为xml文件-CSDN博客http://t.csdnimg.cn/HAlON
现在需要将xml转化为JPG文件,投喂给大模型,提升大模型的图表能力。
如果再利用drawo.io的网页端,再进行另存为图片,就太慢了。
在GitHub有一个大神,他提供开源的桌面端drwao.io,有了它,就不用等网页渲染了,效率拉满。
二、方法
下载drawo.io后, 遍历输入目录中的文件,使用 draw.io.exe 将 .xml文件 转换为 .jpg文件。这样就可以批量处理xml文件了。
import os
from tqdm import tqdm
# 定义输入和输出目录
base_dir = r'xml'
output_dir = r'output'
os.makedirs(output_dir, exist_ok=True)
# 遍历输入目录中的文件,逆序进行
for name in tqdm(os.listdir(base_dir)[::-1]):
# 跳过不是 .xml 结尾的文件
if not name.endswith('.xml'):
continue
# 如果输出目录中已经存在相应的 .jpg 文件,跳过处理
if os.path.exists(os.path.join(output_dir, name[:-4] + '.jpg')):
continue
# 定义转换后的 .jpg 文件路径
xml_path = os.path.join(base_dir, name)
jpg_name = os.path.join(output_dir, name[:-4] + '.jpg')
# 使用 draw.io.exe 将 .xml 转换为 .jpg
os.system(f'draw.io.exe -x -f jpg -o "{jpg_name}" "{xml_path}"')
三、结果
是真的快,用网页渲染,又要好久好久。
四、后续工作
- 将输出的JPG与xml中的数据进行准确映射,去除无法准确贴上标签的数据。
- 将xml提取element和edge元素存储在JSON文件中,作为数据的标签。