2017-10-07 82 views
2

我想使用python并理解SVG图纸。我希望python的行为类似于java脚本,并从SVG获取信息。我知道SVG中可以有两种类型的信息。基于在Python中处理SVG

  1. XML的信息 - 如elementbyID,elementbyTagNames
  2. 结构信息 - 位置信息以转换到考虑太多 - 比如getelementfrompoint,getboundingbox

我寻觅了一圈,发现蟒蛇库,作为lxml在svg中进行xml处理。我还发现了诸如svgpathtools,svg.path之类的库,但据我了解,这些只处理svgpath元素。

所以我的问题是,

  1. 是否有良好的库支持处理SVG在Python?(类似于Java脚本)

回答

0

我不认为这是可行的。我正在引导你回答关于渲染与Python的SVG - 但之后,所有你有像素。

在转换之间的任意点从SVG数据中提取位置信息可能仅在浏览器本身中实现。您可能有两种选择:使用无头浏览器和硒/ splinter在真实浏览器中加载SVG数据并在其中运行JavaScript语句,或者让您的Python代码在Brython中运行,然后在浏览器中运行所有内容。从Brython开始,你应该可以使用Javascript调用作为SVG对象的方法,因为它暴露给Brython本身。

+0

谢谢。我同意你的评论,即在浏览器中有更多的支持。也感谢你提起Brython,因为我之前没有听说过。我将来会使用这些。 – user3902003

-1

访问www.pypi.org开始搜索,然后搜索“SVG ”。查看存在的内容并查看适合您需求的内容。

+0

谢谢。我检查了你发送的链接。尽管如此,我还是找不到任何python库来处理所有SVG结构数据(包括转换)。所以我正在考虑编写我自己的库来处理所有这些使用现有库的一些功能的情况。我希望它不会重复。 – user3902003

0

尝试使用Pygal。它用于创建交互式.svg图片。

0

谢谢你的所有答案和帮助。

在阅读所有评论和更多www搜索之后,我同意这样的观点,即在支持Java脚本的Web浏览器中处理SVG有更多的支持。所以我决定使用JS,并且只有在没有选择的情况下才使用python。然而,我会使用python库,例如我认为的(https://pypi.python.org/pypi/svgpathtools/1.0.1)。但截至目前,我已将所有SVG功能发现交给java脚本