21.8. imghdr — Determine the type of an image¶
Source code: Lib/imghdr.py
The imghdr module determines the type of image contained in a file or
byte stream.
The imghdr module defines the following function:
- imghdr.what(filename[, h])¶
 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  | 
|---|---|
  | 
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  | 
New in version 2.5: Exif detection.
You can extend the list of file types imghdr can recognize by appending
to this variable:
- imghdr.tests¶
 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 beNone.The test function should return a string describing the image type if the test succeeded, or
Noneif it failed.
Example:
>>> import imghdr
>>> imghdr.what('bass.gif')
'gif'
