imghdr
— Определите тип изображения¶
Исходный код: Lib/imghdr.py
Утратил актуальность с версии 3.11, будет удален в версии 3.13: Модуль imghdr
устарел (подробности и альтернативные варианты см. в разделе PEP 594).
Модуль imghdr
определяет тип изображения, содержащегося в файле или потоке байтов.
Модуль imghdr
определяет следующую функцию:
- imghdr.what(file, h=None)¶
Проверяет данные изображения, содержащиеся в файле с именем file, и возвращает строку, описывающую тип изображения. Если указан необязательный параметр h, аргумент file игнорируется, и предполагается, что h содержит тестируемый поток байтов.
Изменено в версии 3.6: Принимает значение path-like object.
Распознаются следующие типы изображений, перечисленные ниже, с возвращаемым значением what()
:
Ценность |
Формат изображения |
---|---|
|
Файлы SGI ImgLib |
|
Файлы GIF 87a и 89a |
|
Переносимые растровые файлы |
|
Переносимые файлы серых карт |
|
Переносимые файлы пиксельных изображений |
|
Файлы в формате TIFF |
|
Растровые файлы Sun |
|
X Растровых файлов |
|
Данные JPEG в форматах JFIF или Exif |
|
BMP-файлы |
|
Портативная сетевая графика |
|
Файлы WebP |
|
Файлы OpenEXR |
Добавлено в версии 3.5: Были добавлены форматы exr и webp.
Вы можете расширить список типов файлов, которые может распознавать imghdr
, добавив к этой переменной:
- imghdr.tests¶
Список функций, выполняющих отдельные тесты. Каждая функция принимает два аргумента: поток байтов и открытый файловый объект. Когда
what()
вызывается с помощью потока байтов, файловым объектом будетNone
.Тестовая функция должна возвращать строку, описывающую тип изображения, если тест прошел успешно, или
None
в случае неудачи.
Пример:
>>> import imghdr
>>> imghdr.what('bass.gif')
'gif'