Документация Python неофициальный перевод

22.7. imghdr – Определение типа изображенияimghdr – Determine the type of an image

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


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

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

imghdr.what(filename, h=None)

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

Распознаются следующие типы изображений, перечисленные ниже с возвращаемым значением из 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' Портативная сетевая графика

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

imghdr.tests

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

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

Пример:

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