imghdr.md
1> **Источник:** https://python-all.ru/3.8/library/imghdr.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`imghdr`](https://python-all.ru/3.8/library/imghdr.html#module-imghdr) – Определение типа изображения89**Исходный код:** [Lib/imghdr.py](https://python-all.ru/src/3.8/Lib/imghdr.py)1011---1213Модуль [`imghdr`](https://python-all.ru/3.8/library/imghdr.html#module-imghdr) определяет тип изображения, содержащегося в файле или потоке байтов.1415Модуль [`imghdr`](https://python-all.ru/3.8/library/imghdr.html#module-imghdr) определяет следующую функцию:1617#### `imghdr.what(filename, h=None)`1819Проверяет данные изображения, содержащиеся в файле с именем *filename*, и возвращает строку, описывающую тип изображения. Если указан необязательный *h*, то *filename* игнорируется и считается, что *h* содержит поток байтов для проверки.2021Изменено в версии 3.6: Принимает [объект, подобный пути](https://python-all.ru/3.8/glossary.html#term-path-like-object).2223Распознаются следующие типы изображений, перечисленные ниже вместе с возвращаемым значением от [`what()`](https://python-all.ru/3.8/library/imghdr.html#imghdr.what):2425| Значение | Формат изображения |26| --- | --- |27| `'rgb'` | Файлы SGI ImgLib |28| `'gif'` | Файлы GIF 87a и 89a |29| `'pbm'` | Файлы Portable Bitmap |30| `'pgm'` | Файлы Portable Graymap |31| `'ppm'` | Файлы Portable Pixmap |32| `'tiff'` | Файлы TIFF |33| `'rast'` | Файлы Sun Raster |34| `'xbm'` | Файлы X Bitmap |35| `'jpeg'` | Данные JPEG в форматах JFIF или Exif |36| `'bmp'` | Файлы BMP |37| `'png'` | Портативная сетевая графика |38| `'webp'` | Файлы WebP |39| `'exr'` | Файлы OpenEXR |4041Новое в версии 3.5: Форматы *exr* и *webp* были добавлены.4243Список типов файлов, распознаваемых [`imghdr`](https://python-all.ru/3.8/library/imghdr.html#module-imghdr), можно расширить, добавив в эту переменную:4445#### `imghdr.tests`4647Список функций, выполняющих отдельные тесты. Каждая функция принимает два аргумента: поток байтов и открытый файлоподобный объект. Когда [`what()`](https://python-all.ru/3.8/library/imghdr.html#imghdr.what) вызывается с потоком байтов, файлоподобный объект будет `None`.4849Тестовая функция должна возвращать строку с описанием типа изображения, если тест успешен, или `None`, если нет.5051Пример:5253```python54>>> import imghdr55>>> imghdr.what('bass.gif')56'gif'57```58