我有 svg 文件,我想根据它们的尺寸进行比较。
我读到 PIL 是 python 中最好的图像工具。 PIL 可以处理 svg 文件吗?我似乎在任何地方都找不到这个。
在谷歌搜索时,我看到人们将 svg 文件解释为文本,这似乎违反直觉。
如果 PIL 不是获取 .svg 文件 x 和 y 尺寸的最佳方法怎么办?
谢谢
PIL 可以处理许多图像类型,但还不能处理 SVG。部分原因是 SVG 是一组生成图像的指令,而不是原始图像数据的容器。
幸运的是,可以使用您选择的工具将 SVG 读取为 XML;例如,Python 标准库中的 xml.etree.ElementTree。
不幸的是,就其本质而言,SVG 没有单一的原生大小。相反,它有两个尺寸概念:视图框以及高度和宽度属性。
如果您的 svg 文件具有
width
和 height
属性,您可以安全地将它们分别用作 x
和 y
尺寸。否则,如果它具有 viewBox
属性,则意味着可以缩放到您需要的任何大小;但是,如果需要,您可以使用其第三个和第四个数字作为宽度和高度。
更糟糕的是,SVG 文件可能缺少其中任何一个。在这种情况下,人们可能会根据文件中的元素计算高度和宽度,但这比任何人真正想要做的都要棘手,因为考虑到格式的全部功能。
这里是另一个 Stackoverflow 问题的链接,您可以在其中找到问题的解决方案。希望有帮助!