我有 svg 文件,我想根据它们的尺寸进行比较。
我了解到 PIL 是 Python 中最好的图像工具。 PIL 是否处理 svg 文件?我似乎无法在任何地方找到它。
在谷歌搜索时,我看到人们将 svg 文件解释为文本,这似乎违反直觉。
如果不是 PIL 是获取 .svg 文件的 x 和 y 尺寸的最佳方式怎么办?
谢谢
最佳答案
PIL 句柄 many image types ,但不是(还?)SVG。部分原因在于 SVG 是一组生成图像的指令,而不是原始图像数据的容器。
幸运的是,可以使用您选择的工具将 SVG 读取为 XML;例如,xml.etree.ElementTree在 Python 标准库中。
不幸的是,就其本质而言,SVG 没有单一的原生尺寸。相反,it has two size concepts : View 框,以及高度和宽度属性。
如果您的 svg 文件具有 width
和 height
属性,您可以安全地将它们用作 x
和 y
尺寸,分别。否则,如果它有一个 viewBox
属性,它意味着可以缩放到您需要的任何大小;但是,如果需要,您可以使用它的第三个和第四个数字作为宽度和高度。
更糟糕的是,SVG 文件可能缺少其中任何一个。在这种情况下,人们可能会根据文件中的元素计算高度和宽度,但考虑到格式的全部功能,这比任何人真正想做的都要棘手。
关于python - PIL 可以用于获取 svg 文件的尺寸吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24316032/