PIL能用来获取SVG文件的尺寸吗?

3

我有一些SVG文件,想根据它们的尺寸进行比较。

我了解到PIL是Python中最好的图像处理工具。但是,PIL能够处理SVG文件吗?我似乎找不到相关信息。

在搜索时,我看到有人将SVG文件解释为文本,这似乎有些违反直觉。

如果PIL不是获取.svg文件的x和y尺寸的最佳方法,那么还有其他什么方法呢?

谢谢!


人们将SVG文件解释为文本,因为SVG文件实际上是可以被解释以呈现图像的XML文本文件。 - murgatroid99
你可以尝试使用PySVG - tmr232
使用pysvg,我已经有了pysvg.parse(my file),但是如何获取x和y的尺寸?我正在寻找清晰的文档,我只看到如何创建SVG而不是获取信息。 - Tai
当我使用sudo easy_install pysvg安装pysvg时,它以一个pysvg.egg文件的形式安装,但是我无法正确地使用它。 - Tai
1个回答

3
PIL可以处理许多图像类型,但似乎还不支持SVG。部分原因是因为SVG是一组生成图像的指令,而不是包含原始图像数据的容器。
幸运的是,可以使用你选择的工具(例如Python标准库中的xml.etree.ElementTree)将SVG作为XML读取。
不幸的是,由于其本质,SVG没有单一的本机大小。相反,它有两个大小概念:视口和高度/宽度属性。点击此处了解更多信息。
如果您的SVG文件具有widthheight属性,则可以将它们分别用作xy维度。否则,如果它具有viewBox属性,则意味着它可以缩放到任何所需大小;但是,如果需要,您可以使用其第三个和第四个数字作为宽度和高度。
更糟糕的是,SVG文件可能缺少其中一个属性。在这种情况下,可以根据文件中的元素计算高度和宽度,但考虑到该格式的全部功能,这比任何人真正想做的要棘手得多。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接