21.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'