【问题标题】:Processing SVG in Python在 Python 中处理 SVG
【发布时间】:2017-10-07 20:32:22
【问题描述】:

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

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

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

所以我的问题是,

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

【问题讨论】:

    标签: javascript python svg libraries


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我同意您的评论,即浏览器中有更多支持。也感谢您对 Brython 的提醒,因为我以前从未听说过它。我以后会用到这些。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      感谢您的所有回答和帮助。

      在阅读了所有 cmets 和更多 www 搜索之后,我同意在支持 Java 脚本的 Web 浏览器中提供更多支持来处理 SVG 的想法。所以我决定用JS,只有在别无选择的时候才用python。但是,我认为我会使用 Python 库,例如 (https://pypi.python.org/pypi/svgpathtools/1.0.1)。但截至目前,我将所有 SVG 功能发现交给了 java 脚本

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 谢谢。我检查了你发送的链接。我仍然找不到任何 python 库来处理所有 SVG 结构数据(包括转换)。所以我正在考虑使用现有库中的一些功能编写自己的库来处理所有这些情况。我希望它不会重复。
        猜你喜欢
        • 2017-10-02
        • 1970-01-01
        • 2016-06-21
        • 2017-05-28
        • 1970-01-01
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多