# :mod:”imghdr” — Determinar el tipo de imagen

Código fuente: :source:”Lib/imghdr.py”

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`(filename, h=None)

  Comprueba los datos de imagen contenidos en el archivo mencionado en filename y retorna una cadena de caracteres que describe el tipo de imagen. Si se proporciona el argumento opcional h, se ignora filename y se supone que h contiene la secuencia de bytes que se va a analizar.

  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'