PIL可以用来获取svg文件的尺寸吗?

问题描述 投票:0回答:2

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

我读到 PIL 是 python 中最好的图像工具。 PIL 可以处理 svg 文件吗?我似乎在任何地方都找不到这个。

在谷歌搜索时,我看到人们将 svg 文件解释为文本,这似乎违反直觉。

如果 PIL 不是获取 .svg 文件 x 和 y 尺寸的最佳方法怎么办?

谢谢

python image svg python-imaging-library
2个回答
2
投票

PIL 可以处理许多图像类型,但还不能处理 SVG。部分原因是 SVG 是一组生成图像的指令,而不是原始图像数据的容器。

幸运的是,可以使用您选择的工具将 SVG 读取为 XML;例如,Python 标准库中的 xml.etree.ElementTree

不幸的是,就其本质而言,SVG 没有单一的原生大小。相反,它有两个尺寸概念:视图框以及高度和宽度属性。

如果您的 svg 文件具有

width
height
属性,您可以安全地将它们分别用作
x
y
尺寸。否则,如果它具有
viewBox
属性,则意味着可以缩放到您需要的任何大小;但是,如果需要,您可以使用其第三个和第四个数字作为宽度和高度。

更糟糕的是,SVG 文件可能缺少其中任何一个。在这种情况下,人们可能会根据文件中的元素计算高度和宽度,但这比任何人真正想要做的都要棘手,因为考虑到格式的全部功能。


0
投票

这里是另一个 Stackoverflow 问题的链接,您可以在其中找到问题的解决方案。希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.