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

Исходный код: Lib/imghdr.py


Модуль 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'