首页 > 解决方案 > 如何在 python 中获取 SVG 图像的分辨率?

问题描述

有什么方法可以在 python 中获取 SVG 图像的分辨率。所有其他图像分辨率都适用于 PIL。我没有任何 SVG 图像的解决方案。我正在使用以下代码来获取分辨率,但它仅适用于某些情况,

data = request.FILES['picture']
tree = ET.parse(data)
root = tree.getroot()
h = int(root.attrib['height'])
w = int(root.attrib['width'])
print(h, w)

标签: pythondjangosvgpython-imaging-library

解决方案


SVG 文件是矢量,可以作为 XML 读取。例如Python 标准库中的xml.etree.ElementTree可以解析 XML 文件。

我们有这样的东西:

<svg width="240" height="240" xmlns="http://www.w3.org/2000/svg">

如果您的文件具有宽度和高度属性,则可以使用它们。如果没有宽度和高度,我认为没有办法获得 SVG 文件的确切大小,因为它们可以无限缩放(任何分辨率

宽度和高度

<svg width="240" height="240" 
xmlns="http://www.w3.org/2000/svg">

将原始比例加倍。

<svg viewBox="0 0 120 120" width="240" height="240" 
xmlns="http://www.w3.org/2000/svg">

无限缩放

<svg viewBox="0 0 120 120" 
xmlns="http://www.w3.org/2000/svg">

推荐阅读