imghdr — Determine the type of an image — Python documentation
imghdr — Determine the type of an image
Source code: :source:`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(file, h=None)
Tests the image data contained in the file named by file, and returns a string describing the image type. If optional h is provided, the file argument 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 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:
- 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('bass.gif')
'gif'