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'