14.9 imghdr --- Détermine le type d'une image

Le module imghdr détermine le type de l'image contenu dans un fichier ou un flux d'octets.

Le module imghdr définit la fonction suivante:

what(nomfichier[, h])
Teste les données d'image contenues dans le fichier nommé nomfichier, et retourne une chaîne de caractères décrivant le type de l'image. Si la valeur optionnelle h est fournie, l'argument nomfichier est ignoré et h est supposé contenir le flux d'octets à tester.

Les types d'images reconnus sont listés ci-dessous, avec la valeur retournée par what():

Valeur Format d'image 
'rgb'Fichiers SGI ImgLib
'gif'Fichiers GIF 87a et 89a
'pbm'Fichiers Bitmap portables
'pgm'Fichiers en niveau de gris portables
'ppm'Fichiers Pixmap portables
'tiff'Fichiers TIFF
'rast'Fichiers Raster de Sun
'xbm'Fichiers X Bitmap
'jpeg'Données JPEG au format JFIF
'bmp'Fichiers BMP
'png'Fichiers Network Graphics portables

Vous pouvez étendre la liste des types de fichiers que imghdr peut reconnaître en ajoutant à cette variable:

tests
Une liste de fonctions exécutant les tests individuels. Chaque fonction prend deux arguments: le flux d'octets et un objet de type fichier ouvert. Quand what() est appelé avec un flux d'octets, l'objet de type fichier sera None.

La fonction test doit retourner une chaîne de caractères décrivant le type de l'image si le test a réussi, ou None s'il a échoué.

Exemple :

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