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=None)
-
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:
-
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
None
if it failed.
Example:
>>> import imghdr >>> imghdr.what('bass.gif') 'gif'
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.5/library/imghdr.html