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

The following image types are recognized, as listed below with the return value
from what():

Value

Image format

'rgb'

SGI ImgLib Files

'gif'

GIF 87a and 89a Files

'pbm'

Portable Bitmap Files

'pgm'

Portable Graymap Files

'ppm'

Portable Pixmap Files

'tiff'

TIFF Files

'rast'

Sun Raster Files

'xbm'

X Bitmap Files

'jpeg'

JPEG data in JFIF or Exif formats

'bmp'

BMP files

'png'

Portable Network Graphics

'webp'

WebP files

'exr'

OpenEXR Files

New in version 3.5: The exr and webp formats were added.

You can extend the list of file types imghdr can recognize by appending
to this variable:

A list of functions performing the individual tests. Each function takes two
arguments: the byte-stream and an open file-like object. When what() is
called with a byte-stream, the file-like object will be None.

The test function should return a string describing the image type if the test
succeeded, or None if it failed.