| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | :mod:`imghdr` --- Determine the type of an image
 | 
					
						
							|  |  |  | ================================================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. module:: imghdr
 | 
					
						
							|  |  |  |    :synopsis: Determine the type of image contained in a file or byte stream.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-27 20:38:46 +00:00
										 |  |  | **Source code:** :source:`Lib/imghdr.py`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The :mod:`imghdr` module determines the type of image contained in a file or
 | 
					
						
							|  |  |  | byte stream.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The :mod:`imghdr` module defines the following function:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-01 17:35:27 +00:00
										 |  |  | .. function:: what(filename, h=None)
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |    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         |
 | 
					
						
							|  |  |  | +------------+-----------------------------------+
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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'
 | 
					
						
							|  |  |  | 
 |