22.7. imghdr - 确定图像的类型

源代码: Lib/imghdr.py

imghdr模块确定包含在文件或字节流中的图像类型。

imghdr模块定义以下函数:

imghdr.what(filename, h=None)

测试由filename命名的文件中包含的图像数据,并返回描述图像类型的字符串。如果提供了可选的h,则忽略文件名,假设h包含要测试的字节流。

可以识别以下图像类型,如下所示,返回值来自what()

图像格式
'rgb'SGI ImgLib文件
'gif'GIF 87a和89a文件
'pbm'便携式位图文件
'pgm'便携式灰色图文件
'ppm'便携式Pixmap文件
'tiff'TIFF文件
'rast'太阳光栅文件
'xbm'X位图文件
'jpeg'JFIF或Exif格式的JPEG数据
'bmp'BMP文件
'png'便携式网络图形
'webp'WebP文件
'exr'OpenEXR文件

版本3.5中的新功能:添加了exrwebp格式。

您可以扩展文件类型列表imghdr可以通过追加到此变量来识别:

imghdr.tests

执行单独测试的函数列表。每个函数都有两个参数:字节流和一个类似打开文件的对象。当使用字节流调用what()时,类文件对象将为None

如果测试成功,测试函数应返回描述图像类型的字符串,如果失败,则返回None

例:

>>> import imghdr
>>> imghdr.what('bass.gif')
'gif'