在 Python 中快速获取图像(jpg、raw 文件、tiff)的高度和宽度的策略?

1 投票
1 回答
700 浏览
提问于 2025-04-18 09:33

我怎样才能在Python中尽快获取一张图片的高度和宽度呢?

我知道可以用PIL库来处理图片,然后计算出它的高度和宽度,但我在想有没有办法先用EXIF数据或者其他嵌入的元数据(比如exiftool)来获取这些信息,只有在没办法的情况下才使用PIL呢?

1 个回答

4

PIL已经很有效地为你提供了这个信息。你可以放心地使用它来提取图片的大小,而不需要读取整个文件。PIL只会读取获取元数据所需的数据量,如果你只想要这些信息的话。

理论上,你还可以更高效地做,只加载图片的宽度和高度信息。你需要自己编写这个代码,如果你了解图片格式的话,其实并不难。不过,这就是问题所在,你得重新发明读取二进制图片数据的轮子。

如果你遵循ZPL许可证,你或许可以改编Zope代码库中的这个函数,它专门处理GIF、JPG和PNG格式的图片。我在很久以前的某个时候,也参与过那段代码的编写,大约是在Python 1.x的时代。

撰写回答