:mod:`imghdr` --- Determine the type of an image ================================================ .. module:: imghdr :synopsis: Determine the type of image contained in a file or byte stream. The :mod:`imghdr` module determines the type of image contained in a file or byte stream. The :mod:`imghdr` module defines the following function: .. function:: 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 :func:`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 | +------------+-----------------------------------+ .. versionadded:: 2.5 Exif detection. You can extend the list of file types :mod:`imghdr` can recognize by appending to this variable: .. data:: tests A list of functions performing the individual tests. Each function takes two arguments: the byte-stream and an open file-like object. When :func:`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'