快捷键:ctrl+g,能将图形转换成容器,使其他图形能够移入该容器中。移入时会有紫色提醒(ctrl+g同时也是组合的快捷键)。
除了常用的ctrl+c与ctrl+v外,还能使用ctrl+鼠标左键拖拽。
在空白处双击就会出现
该软件由于开源特性,在vscdoe中也可以作为插件使用
import pyperclip, os
from paddleocr import PaddleOCR, paddleocr
def convert_to_mxGeometry(coords):
x_min = min([coord[0] for coord in coords])
y_min = min([coord[1] for coord in coords])
x_max = max([coord[0] for coord in coords])
y_max = max([coord[1] for coord in coords])
width = x_max - x_min
height = y_max - y_min
x = x_min + width/2
y = y_min + height/2
return f'<mxGeometry x="{x}" y="{y}" width="{width}" height="{height}" as="geometry"/>'
def test_convert_to_mxGeometry():
coords = [[29.0, 122.0], [216.0, 122.0], [216.0, 135.0], [29.0, 135.0]]
print(convert_to_mxGeometry(coords))
def ocr_to_mxGraphModel(img_path):
# 判断是否为图片
if not img_path.endswith(('.jpg', '.png', '.jpeg')):
return '请使用图片文件'
# 判断图片是否存在
if not os.path.exists(img_path):
return '图片不存在'
# 关闭DEBUG日志的打印
import logging
paddleocr.logging.disable(logging.DEBUG)
# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
print('正在识别图片,请稍等...')
result = ocr.ocr(img_path, cls=True)
num, ret= 2, ['<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/>']
for line in result:
for word in line:
# xml转义字符
value = word[1][0].replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"')
ret.append(f'<mxCell id="{num}" value="{value}" style="rounded=0%3BwhiteSpace=wrap%3Bhtml=1%3B" vertex="1" parent="1">')
ret.append(convert_to_mxGeometry(word[0]))
ret.append('</mxCell>')
num += 1
# print(convert_to_mxGeometry(word[0]) , word[1][0])
ret.append('</root></mxGraphModel>')
print('识别完成')
# 拼接成xml
return ''.join(ret)
if __name__ == '__main__':
print('程序开始运行')
# 图片路径
img_path = R'C:\Users\Jack\Desktop\11.png'
# 识别图片,得到xml
xml = ocr_to_mxGraphModel(img_path)
# 复制到剪切板
pyperclip.copy(xml)
print('已复制到剪切板,请在draw.io中粘贴')
安装命令:
安装paddle模块
python -m pip install paddlepaddle==2.5.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装paddleocr模块
pip install paddleocr
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。