如何用PIL获取图像格式?

Neo*_*ang 32 python image-formats python-imaging-library

使用PIL.Image加载图像文件后,如何确定图像文件是否为PNG/JPG/BMP/GIF?我对这些文件格式了解甚少,PIL可以format从文件头获取元数据吗?或者是否需要"分析"文件中的数据?

如果PIL没有提供这样的API,那么有没有python库呢?

Mik*_*maa 62

尝试:

img = Image.open(filename)
print(img.format)  # 'JPEG'
Run Code Online (Sandbox Code Playgroud)

更多信息

  • 对于其他任何人来说......你可以通过`Image.MIME [img.format]来获得mimetype (24认同)
  • Pillow 提供了`im.get_format_mimetype()`来获取图像mimetype (6认同)
  • 请不要猜测,但请参阅文档如何确定文件格式.如果PIL读取图像文件,则必须选择使用哪个解码器,并通过format属性公开此信息. (4认同)
  • 我猜这个属性只是文件扩展名,如果图像是用原始数据构造的,则为“无”。在我的情况下,文件扩展名并不总是可用。 (2认同)
  • 我读了PIL来源,我现在确信. (2认同)
  • 有没有更轻量级的版本?例如只查看标题或元数据而不是打开图像? (2认同)