Source code: Lib/imghdr.py
imghdr module determines the type of image contained in a file or byte stream.
imghdr module defines the following function:
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.
Changed in version 3.6: Accepts a path-like object.
The following image types are recognized, as listed below with the return value from
| ||SGI ImgLib Files|
| ||GIF 87a and 89a Files|
| ||Portable Bitmap Files|
| ||Portable Graymap Files|
| ||Portable Pixmap Files|
| ||TIFF Files|
| ||Sun Raster Files|
| ||X Bitmap Files|
| ||JPEG data in JFIF or Exif formats|
| ||BMP files|
| ||Portable Network Graphics|
| ||WebP files|
| ||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
The test function should return a string describing the image type if the test succeeded, or
None if it failed.
>>> import imghdr >>> imghdr.what('bass.gif') 'gif'
© 2001–2017 Python Software Foundation
Licensed under the PSF License.