获取图像大小而不用Python下载它

新手上路,请多包涵

如何在不实际下载图像的情况下获取图像尺寸?有可能吗?我有一个图像 url 列表,我想为其分配宽度和大小。

我知道有一种方法可以在本地执行此操作( How to check dimensions of all images in a directory using python? ),但我不想下载所有图像。

编辑:

继编。建议,我编辑了代码。我想出了 这段代码。不确定它会下载整个文件还是只下载一部分(如我所愿)。

原文由 grotos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 505
1 个回答

我发现 此站点 上的解决方案运行良好:

 import urllib
import ImageFile

def getsizes(uri):
    # get file size *and* image size (None if not known)
    file = urllib.urlopen(uri)
    size = file.headers.get("content-length")
    if size: size = int(size)
    p = ImageFile.Parser()
    while 1:
        data = file.read(1024)
        if not data:
            break
        p.feed(data)
        if p.image:
            return size, p.image.size
            break
    file.close()
    return size, None

print getsizes("http://www.pythonware.com/images/small-yoyo.gif")
# (10965, (179, 188))

原文由 jedierikb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题