blob: 20f789f6a50432126abeb9a193ca9c21813462f7 [file] [log] [blame]
Georg Brandl8ec7f652007-08-15 14:28:01 +00001:mod:`imghdr` --- Determine the type of an image
2================================================
3
4.. module:: imghdr
5 :synopsis: Determine the type of image contained in a file or byte stream.
6
Éric Araujo29a0b572011-08-19 02:14:03 +02007**Source code:** :source:`Lib/imghdr.py`
8
9--------------
Georg Brandl8ec7f652007-08-15 14:28:01 +000010
11The :mod:`imghdr` module determines the type of image contained in a file or
12byte stream.
13
14The :mod:`imghdr` module defines the following function:
15
16
17.. function:: what(filename[, h])
18
19 Tests the image data contained in the file named by *filename*, and returns a
20 string describing the image type. If optional *h* is provided, the *filename*
21 is ignored and *h* is assumed to contain the byte stream to test.
22
23The following image types are recognized, as listed below with the return value
24from :func:`what`:
25
26+------------+-----------------------------------+
27| Value | Image format |
28+============+===================================+
29| ``'rgb'`` | SGI ImgLib Files |
30+------------+-----------------------------------+
31| ``'gif'`` | GIF 87a and 89a Files |
32+------------+-----------------------------------+
33| ``'pbm'`` | Portable Bitmap Files |
34+------------+-----------------------------------+
35| ``'pgm'`` | Portable Graymap Files |
36+------------+-----------------------------------+
37| ``'ppm'`` | Portable Pixmap Files |
38+------------+-----------------------------------+
39| ``'tiff'`` | TIFF Files |
40+------------+-----------------------------------+
41| ``'rast'`` | Sun Raster Files |
42+------------+-----------------------------------+
43| ``'xbm'`` | X Bitmap Files |
44+------------+-----------------------------------+
45| ``'jpeg'`` | JPEG data in JFIF or Exif formats |
46+------------+-----------------------------------+
47| ``'bmp'`` | BMP files |
48+------------+-----------------------------------+
49| ``'png'`` | Portable Network Graphics |
50+------------+-----------------------------------+
51
52.. versionadded:: 2.5
53 Exif detection.
54
55You can extend the list of file types :mod:`imghdr` can recognize by appending
56to this variable:
57
58
59.. data:: tests
60
61 A list of functions performing the individual tests. Each function takes two
62 arguments: the byte-stream and an open file-like object. When :func:`what` is
63 called with a byte-stream, the file-like object will be ``None``.
64
65 The test function should return a string describing the image type if the test
66 succeeded, or ``None`` if it failed.
67
68Example::
69
70 >>> import imghdr
71 >>> imghdr.what('/tmp/bass.gif')
72 'gif'
73