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

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

Не рекомендуется, начиная с версии 3.11: Модуль imghdr устарел (подробности и альтернативы см. в PEP 594).


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

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

imghdr.what(file, h=None)

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

Изменено в версии 3.6: Принимает path-like object.

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

Значение

Формат изображения

'rgb'

Файлы SGI ImgLib

'gif'

Файлы GIF 87a и 89a

'pbm'

Портативные растровые файлы

'pgm'

Портативные файлы Graymap

'ppm'

Портативные файлы Pixmap

'tiff'

Файлы TIFF

'rast'

Растровые файлы Солнца

'xbm'

X Растровые файлы

'jpeg'

Данные JPEG в форматах JFIF или Exif

'bmp'

BMP-файлы

'png'

Портативная сетевая графика

'webp'

WebP-файлы

'exr'

Файлы OpenEXR

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

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

imghdr.tests

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

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

Пример:

>>> import imghdr
>>> imghdr.what('bass.gif')
'gif'
Вернуться на верх