python - PIL 可以用于获取 svg 文件的尺寸吗?

标签 python image svg python-imaging-library

我有 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 文件具有 widthheight 属性,您可以安全地将它们用作 xy 尺寸,分别。否则,如果它有一个 viewBox 属性,它意味着可以缩放到您需要的任何大小;但是,如果需要,您可以使用它的第三个和第四个数字作为宽度和高度。

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

关于python - PIL 可以用于获取 svg 文件的尺寸吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24316032/

相关文章:

python - 使用 Python/Pandas/Numpy 计算图形/图中的循环数

python - 处理 Python 套接字

python - 从python中的列表中搜索

javascript - 多个数组,需要找到嵌套数组位置

javascript - 在 svg 图表顶部添加 div (D3.js)

python - 加号不携带

html - 在 css 中带有图像的图像

ios - 放大 View 时的 block 大小图像

java - 创建图像的可点击按钮

python - 如何使用 Python 在 SVG 文件中按 'id' 字段查找元素