# `imghdr` — Determinar el tipo de imagen

Código fuente: Lib/imghdr.py

Obsoleto desde la versión 3.11, se eliminará en la versión 3.13: El módulo `imghdr` está obsoleto (ver PEP 594 para detalles y alternativas).

El módulo `imghdr` determina el tipo de imagen contenida en un archivo o secuencia de bytes.

El módulo `imghdr` define la siguiente función:

imghdr.what(file, h=None)

  Prueba los datos de imagen contenidos en el archivo nombrado por file y retorna una cadena que describe el tipo de imagen. Si se proporciona h opcional, se ignora el argumento file y se supone que h contiene el flujo de bytes para probar.

  Distinto en la versión 3.6: Acepta un path-like object.

Se reconocen los siguientes tipos de imagen, enumerados a continuación con el valor devuelto de `what()`:

Valor | Formato de imagen
--- | ---
`'rgb'` | Archivos SGI ImgLib
`'gif'` | Archivos GIF 87a y 89a
`'pbm'` | Archivos Portable Bitmap
`'pgm'` | Archivos Portable Graymap
`'ppm'` | Archivos Portable Pixmap
`'tiff'` | Archivos TIFF
`'rast'` | Archivos Sun Raster
`'xbm'` | Archivos X Bitmap
`'jpeg'` | Datos JPEG en formatos JFIF o Exif
`'bmp'` | Archivos BMP
`'png'` | Portable Network Graphics
`'webp'` | Archivos WebP
`'exr'` | Archivos OpenEXR

Nuevo en la versión 3.5: Se añadieron los formatos exr y webp.

Puede ampliar la lista de tipos de archivo que `imghdr` puede reconocer agregándolos a esta variable:

imghdr.tests

  Una lista de funciones que realizan las comprobaciones individuales. Cada función toma dos argumentos: la secuencia de bytes y un objeto abierto de tipo archivo. Cuando `what()` es llamada con una secuencia de bytes, el objeto de tipo archivo será `None`.

  La función de comprobación debería retornar una cadena de caracteres que describa el tipo de imagen si la comprobación se realizó correctamente o “”Ninguno”” si ha fallado.

Ejemplo:

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