Python 将SVG转换为numpy数组
我正在为python库编写一个函数,在其中一个函数中,我需要将SVG字符串作为输入,即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
<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数组,这可能会有所帮助。。。