| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 1 | :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 |  | 
| Raymond Hettinger | 469271d | 2011-01-27 20:38:46 +0000 | [diff] [blame] | 7 | **Source code:** :source:`Lib/imghdr.py` | 
 | 8 |  | 
 | 9 | -------------- | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 10 |  | 
 | 11 | The :mod:`imghdr` module determines the type of image contained in a file or | 
 | 12 | byte stream. | 
 | 13 |  | 
 | 14 | The :mod:`imghdr` module defines the following function: | 
 | 15 |  | 
 | 16 |  | 
| Georg Brandl | 3dd3388 | 2009-06-01 17:35:27 +0000 | [diff] [blame] | 17 | .. function:: what(filename, h=None) | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 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 |  | 
 | 23 | The following image types are recognized, as listed below with the return value | 
 | 24 | from :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 |  | 
| Georg Brandl | 116aa62 | 2007-08-15 14:28:22 +0000 | [diff] [blame] | 52 | You can extend the list of file types :mod:`imghdr` can recognize by appending | 
 | 53 | to this variable: | 
 | 54 |  | 
 | 55 |  | 
 | 56 | .. data:: tests | 
 | 57 |  | 
 | 58 |    A list of functions performing the individual tests.  Each function takes two | 
 | 59 |    arguments: the byte-stream and an open file-like object. When :func:`what` is | 
 | 60 |    called with a byte-stream, the file-like object will be ``None``. | 
 | 61 |  | 
 | 62 |    The test function should return a string describing the image type if the test | 
 | 63 |    succeeded, or ``None`` if it failed. | 
 | 64 |  | 
 | 65 | Example:: | 
 | 66 |  | 
 | 67 |    >>> import imghdr | 
 | 68 |    >>> imghdr.what('/tmp/bass.gif') | 
 | 69 |    'gif' | 
 | 70 |  |