在 Python 中快速获取图像(jpg、raw 文件、tiff)的高度和宽度的策略?
我怎样才能在Python中尽快获取一张图片的高度和宽度呢?
我知道可以用PIL库来处理图片,然后计算出它的高度和宽度,但我在想有没有办法先用EXIF数据或者其他嵌入的元数据(比如exiftool)来获取这些信息,只有在没办法的情况下才使用PIL呢?
1 个回答
4
PIL已经很有效地为你提供了这个信息。你可以放心地使用它来提取图片的大小,而不需要读取整个文件。PIL只会读取获取元数据所需的数据量,如果你只想要这些信息的话。
理论上,你还可以更高效地做,只加载图片的宽度和高度信息。你需要自己编写这个代码,如果你了解图片格式的话,其实并不难。不过,这就是问题所在,你得重新发明读取二进制图片数据的轮子。
如果你遵循ZPL许可证,你或许可以改编Zope代码库中的这个函数,它专门处理GIF、JPG和PNG格式的图片。我在很久以前的某个时候,也参与过那段代码的编写,大约是在Python 1.x的时代。