Python 将SVG转换为numpy数组

Python 将SVG转换为numpy数组,python,numpy,svg,Python,Numpy,Svg,我正在为python库编写一个函数,在其中一个函数中,我需要将SVG字符串作为输入,即 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" > <rect style="stroke-width:1; fill:rgb(255, 255, 255); stroke:black; " x="0" y="0" height="100

我正在为python库编写一个函数,在其中一个函数中,我需要将SVG字符串作为输入,即

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"  >
    <rect style="stroke-width:1; fill:rgb(255, 255, 255); stroke:black; " x="0" y="0" height="100px" width="200px"  />
    <text x="210" y="110"  >
    Hello World
    </text>
</svg>

你好,世界
我想得到一个光栅化的图像,就像这样:

但是,我需要用python访问此图像,最好是以numpy数组的形式

我知道这可以使用外部可用的软件来完成,例如inkscape或imagemagic,但我明确需要能够在纯python中完成。此外,为了能够将其分发给不同平台上的广泛用户,我不能支持编译后端(与cairo一样)

是否有任何python包以字符串格式获取SVG图像并以某种方式返回表示光栅化图像的numpy数组?

稍后回答

以下是文件参考:

我正在为一个python库编写一个函数——好的,这里有一些东西可以帮助您

from bs4 import BeautifulSoup

data = BeautifulSoup(input, "lxml-xml")
nsvg = data.find_all('svg')

for svg in nsvg:
    # parse specific to your needs, read docs
    for element in svg.children:
        np.append(do_something(element))

您的解决方案的更好答案可能取决于性能和导入要求,考虑到“python库”的上下文,请继续讨论。

目前,根据问题生成numpy数组的任何独立于平台的方法都将是一个很好的开始。希望这能有所帮助-numpy基础知识已删除。需要更多解析方面的帮助吗?我可以提供一个完整的例子。很高兴为您提供帮助在我的回答中,有一个小功能可以将SVG图像文件读入Numpy数组,这可能会有所帮助。。。