imghdr — Determine the type of an image
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 |
'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 |
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 be None.
The test function should return a string describing the image type if the test
succeeded, or None if it failed.
Example:
>>> import imghdr
>>> imghdr.what('/tmp/bass.gif')
'gif'