blob: c60df24c5a17e1d1150570c6411124215298a13f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
:mod:`imghdr` --- Determine the type of an image
================================================
.. module:: imghdr
:synopsis: Determine the type of image contained in a file or byte stream.
**Source code:** :source:`Lib/imghdr.py`
--------------
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=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 :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 |
+------------+-----------------------------------+
| ``'webp'`` | WebP files |
+------------+-----------------------------------+
| ``'exr'`` | OpenEXR Files |
+------------+-----------------------------------+
.. versionadded:: 3.5
The *exr* format was added.
.. versionchanged:: 3.5
The *webp* type was added.
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('bass.gif')
'gif'
|