: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'