: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(file, h=None)

Tests the image data contained in the file named by file, and returns a string describing the image type. If optional h is provided, the file argument is ignored and h is assumed to contain the byte stream to test.

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'