> **Источник:** https://python-all.ru/3.0/library/imghdr.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

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

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

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

#### `[imghdr.what]imghdr.what(filename[, h])`

Проверяет данные изображения, содержащиеся в файле с именем

*filename*

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

*h*

, то

*filename*

игнорируется и считается, что

*h*

содержит поток байтов для проверки.

Распознаются следующие типы изображений, перечисленные ниже с возвращаемым значением из [`what()`](https://python-all.ru/3.0/library/imghdr.html#imghdr.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]imghdr.tests`

Список функций, выполняющих отдельные тесты. Каждая функция принимает два аргумента: поток байтов и открытый файлоподобный объект. Когда [`what()`](https://python-all.ru/3.0/library/imghdr.html#imghdr.what) вызывается с потоком байтов, файлоподобный объект будет равен `None`.

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

Пример:

```python
>>> import imghdr
>>> imghdr.what('/tmp/bass.gif')
'gif'
```
