如何在Python Pillow中调整大小后获取图像大小?

3

resized_image = Image.resize((100,200));

Image是Python-Pillow库中的图像类,我使用了resize函数来调整原始图片的大小。

如何在不保存到磁盘并重新读取的情况下找到resized_image的新文件大小(以字节为单位)?


@OliverW. 哦,我是指图像文件大小,以字节为单位。 - undefined
2个回答

3

文件并不一定要写入磁盘。类似文件的对象就可以解决问题:

from io import BytesIO

# do something that defines `image`...   
img_file = BytesIO()
image.save(img_file, 'png')
print(img_file.tell())

这将以PNG格式打印图像的大小(以字节为单位),而不保存到磁盘。


1
你可以使用BytesIO的替代方法,它只是简单地计数而不需要存储输出结果:https://dev59.com/p2Yr5IYBdhLWcg3wxM4k - undefined

0

你不能。PIL处理的是内存中的图像操作。无法确定它在特定格式下在磁盘上的大小。

你可以将其保存到临时文件中,并使用os.stat('/tmp/tempfile.jpg').st_size读取大小。


我觉得有一种方法可以保存到字节计数器而不是文件,但我暂时找不到答案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接