imghdr — Определяет тип изображения


Модуль imghdr определяет тип изображения, содержащегося в файле или потоке байтов.

Модуль imghdr определяет следующую функцию:

imghdr.what(filename, h=None)

Проверяет данные изображения, содержащиеся в файле с именем filename, и возвращает строку, определяющую тип изображения. Если указан необязательный h, filename игнорируется, и предполагается, что h содержит проверяемый поток байтов.

Изменено в версии 3.6: Принимает путеподобный объект.

Распознаются следующие перечисленные ниже типы изображений, с возвращаемым значением из what():

Значение Формат изображения
'rgb' SGI ImgLib Файлы
'gif' GIF 87a и 89a Файлы
'pbm' Portable Bitmap Файлы
'pgm' Portable Graymap Файлы
'ppm' Portable Pixmap Файлы
'tiff' TIFF Файлы
'rast' Sun Raster Файлы
'xbm' X Bitmap Файлы
'jpeg' Данные JPEG в форматах JFIF или Exif
'bmp' BMP Файлы
'png' Portable Network Graphics
'webp' WebP Файлы
'exr' OpenEXR Файлы

Добавлено в версии 3.5: Добавлены форматы exr и webp.

Вы можете расширить список распознаваемых imghdr типов файлов, добавив к этой переменной:

imghdr.tests

Список функций, выполняющих отдельные тесты. Каждая функция принимает два аргумента: поток байтов и открытый файловый объект. Когда what() вызывается с потоком байтов, файлоподобный объект будет None.

Тестовая функция должна возвращать строку, содержащую тип изображения, если проверка прошла успешно, или None, если она не удалась.

Пример:

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