在 Python 中处理 SVG

Processing SVG in Python

我正在尝试使用 python 并理解 SVG 绘图。我希望 python 的行为类似于 java 脚本并从 SVG 获取信息。我知道 SVG 中可以有两种类型的信息。

    基于
  1. XML 的信息 - 例如 elementbyID、elementbyTagNames
  2. 结构信息 - 位置信息也考虑了转换 - 例如 getelementfrompoint、getboundingbox

我四处搜索并找到 python 库,例如 lxml 用于 xml svg 处理。我还找到了诸如 svgpathtools, svg.path 之类的库,但据我所知,这些库仅处理 svgpath 元素。

所以我的问题是,

  1. 在python中有支持处理svg的好库吗?(类似于java脚本)

访问 www.pypi.org 开始搜索并搜索 "svg"。查看现有内容并查看适合您需求的内容。

我认为这不可行。我指导您回答关于 rendering SVG with Python - 但在那之后你得到的只是像素。

在转换之间的任意点从 SVG 数据中提取位置信息可能只在浏览器本身中实现。您可能有两种选择:使用无头浏览器和 selenium/splinter to load your SVG data in a real browser and run javascript statements in there, OR make your Python code run in Brython,以及 运行 浏览器中的所有内容。在 Brython 中,您应该能够使用 Javascript 调用作为 SVG 对象的方法,因为它暴露给 Brython 本身。

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

感谢大家的回答和帮助。

阅读所有评论和更多 www 搜索后,我同意 Java 支持脚本的 Web 浏览器对处理 SVG 有更多支持的观点。所以我决定用JS,只有在没办法的时候才用python。但是,我会使用 python 库,例如我认为的 (https://pypi.python.org/pypi/svgpathtools/1.0.1) 。但截至目前,我已将所有 SVG 功能发现移交给 java 脚本