17db96d56Sopenharmony_ci:mod:`imghdr` --- Determine the type of an image
27db96d56Sopenharmony_ci================================================
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci.. module:: imghdr
57db96d56Sopenharmony_ci   :synopsis: Determine the type of image contained in a file or byte stream.
67db96d56Sopenharmony_ci   :deprecated:
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci**Source code:** :source:`Lib/imghdr.py`
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci.. deprecated-removed:: 3.11 3.13
117db96d56Sopenharmony_ci   The :mod:`imghdr` module is deprecated
127db96d56Sopenharmony_ci   (see :pep:`PEP 594 <594#imghdr>` for details and alternatives).
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci--------------
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ciThe :mod:`imghdr` module determines the type of image contained in a file or
177db96d56Sopenharmony_cibyte stream.
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ciThe :mod:`imghdr` module defines the following function:
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci.. function:: what(file, h=None)
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci   Tests the image data contained in the file named by *file*, and returns a
257db96d56Sopenharmony_ci   string describing the image type.  If optional *h* is provided, the *file*
267db96d56Sopenharmony_ci   argument is ignored and *h* is assumed to contain the byte stream to test.
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci   .. versionchanged:: 3.6
297db96d56Sopenharmony_ci      Accepts a :term:`path-like object`.
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ciThe following image types are recognized, as listed below with the return value
327db96d56Sopenharmony_cifrom :func:`what`:
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ci+------------+-----------------------------------+
357db96d56Sopenharmony_ci| Value      | Image format                      |
367db96d56Sopenharmony_ci+============+===================================+
377db96d56Sopenharmony_ci| ``'rgb'``  | SGI ImgLib Files                  |
387db96d56Sopenharmony_ci+------------+-----------------------------------+
397db96d56Sopenharmony_ci| ``'gif'``  | GIF 87a and 89a Files             |
407db96d56Sopenharmony_ci+------------+-----------------------------------+
417db96d56Sopenharmony_ci| ``'pbm'``  | Portable Bitmap Files             |
427db96d56Sopenharmony_ci+------------+-----------------------------------+
437db96d56Sopenharmony_ci| ``'pgm'``  | Portable Graymap Files            |
447db96d56Sopenharmony_ci+------------+-----------------------------------+
457db96d56Sopenharmony_ci| ``'ppm'``  | Portable Pixmap Files             |
467db96d56Sopenharmony_ci+------------+-----------------------------------+
477db96d56Sopenharmony_ci| ``'tiff'`` | TIFF Files                        |
487db96d56Sopenharmony_ci+------------+-----------------------------------+
497db96d56Sopenharmony_ci| ``'rast'`` | Sun Raster Files                  |
507db96d56Sopenharmony_ci+------------+-----------------------------------+
517db96d56Sopenharmony_ci| ``'xbm'``  | X Bitmap Files                    |
527db96d56Sopenharmony_ci+------------+-----------------------------------+
537db96d56Sopenharmony_ci| ``'jpeg'`` | JPEG data in JFIF or Exif formats |
547db96d56Sopenharmony_ci+------------+-----------------------------------+
557db96d56Sopenharmony_ci| ``'bmp'``  | BMP files                         |
567db96d56Sopenharmony_ci+------------+-----------------------------------+
577db96d56Sopenharmony_ci| ``'png'``  | Portable Network Graphics         |
587db96d56Sopenharmony_ci+------------+-----------------------------------+
597db96d56Sopenharmony_ci| ``'webp'`` | WebP files                        |
607db96d56Sopenharmony_ci+------------+-----------------------------------+
617db96d56Sopenharmony_ci| ``'exr'``  | OpenEXR Files                     |
627db96d56Sopenharmony_ci+------------+-----------------------------------+
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ci.. versionadded:: 3.5
657db96d56Sopenharmony_ci   The *exr* and *webp* formats were added.
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ci
687db96d56Sopenharmony_ciYou can extend the list of file types :mod:`imghdr` can recognize by appending
697db96d56Sopenharmony_cito this variable:
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci.. data:: tests
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ci   A list of functions performing the individual tests.  Each function takes two
757db96d56Sopenharmony_ci   arguments: the byte-stream and an open file-like object. When :func:`what` is
767db96d56Sopenharmony_ci   called with a byte-stream, the file-like object will be ``None``.
777db96d56Sopenharmony_ci
787db96d56Sopenharmony_ci   The test function should return a string describing the image type if the test
797db96d56Sopenharmony_ci   succeeded, or ``None`` if it failed.
807db96d56Sopenharmony_ci
817db96d56Sopenharmony_ciExample::
827db96d56Sopenharmony_ci
837db96d56Sopenharmony_ci   >>> import imghdr
847db96d56Sopenharmony_ci   >>> imghdr.what('bass.gif')
857db96d56Sopenharmony_ci   'gif'
867db96d56Sopenharmony_ci
87