我正在开发一个机器人项目,从 Android 运行设备拍摄一张照片,然后发送到 cloudconvert.org 将其转换为 SVG,然后所有 SVG 路径将被转换为 x y 坐标并串行发送到机器人手臂,机器人手臂将绘制它们笔打开或关闭。
所以我已经在这个项目中走了到目前为止,我现在遇到的唯一问题是将 SVG 文件解析为路径列表作为字符串列表。
我尝试过 minidom 但似乎不起作用。我实际上可以访问 SVG 文件,但无法访问路径数据示例“M 100,200 L 200.300”,而不是我得到的
>>> from xml.dom import minidom
>>> xmldoc= minidom.parse("C:\Users\DELL\Desktop\drawing-1.svg")
>>> a=xmldoc.getElementsByTagName("svg")[0]
>>> b=a.getElementsByTagName("g")[0]
>>> pth=b.getElementsByTagName("path")[0]
>>> pth
<DOM Element: path at 0x1bb6238>
我只想以字符串形式访问 dom 对象内的数据,当我尝试时
>>> print (str(pth))
然后什么都没有出现,只有两个空行>>>
再次出现。
这是一个旧线程,但由于接受的答案中的链接不再有效,因此我处理 svg 路径的方法如下。
有一个 svg.path 模块,它提取路径和其他形状并提供处理它们的方法。
from xml.dom import minidom
from svg.path import parse_path
svg_dom = minidom.parseString(svg_string)
path_strings = [path.getAttribute('d') for path in svg_dom.getElementsByTagName('path')]
for path_string in path_strings:
path_data = parse_path(path_string)
# now use methods provided by the path_data object
# e.g. points can be extracted using
# point = path_data.pos(pos_val)
# where pos_val is anything between 0 and 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)