# `imghdr` --- 推測圖片種類

原始碼：Lib/imghdr.py

自從版本 3.11 後不推薦使用，將會自版本 3.13 中移除。: `imghdr` 模組 (module) 即將被棄用（詳情與替代方案見 PEP 594）。

`imghdr` 模块推测文件或字节流中的图像的类型。

`imghdr` 模块定义了以下类型：

imghdr.what(file, h=None)

  测试包含在名为 file 的文件中的图像数据，并返回描述该图像类型的字符串。 如果提供了可选的 h，则 file 参数会被忽略并且 h 会被视为包含要测试的字节流。

  在 3.6 版的變更: 接受一个 path-like object。

接下来的图像类型是可识别的，返回值来自 `what()`：

值 | 图像格式
--- | ---
`'rgb'` | SGI 图像库文件
`'gif'` | GIF 87a 和 89a 文件
`'pbm'` | 便携式位图文件
`'pgm'` | 便携式灰度图文件
`'ppm'` | 便携式像素表文件
`'tiff'` | TIFF 檔案
`'rast'` | Sun 光栅文件
`'xbm'` | X 位图文件
`'jpeg'` | JFIF 或 Exif 格式的 JPEG 数据
`'bmp'` | BMP 檔案
`'png'` | 便携式网络图像
`'webp'` | WebP 檔案
`'exr'` | OpenEXR 檔案

在 3.5 版新加入: 新增 exr 與 webp 格式。

你可以扩展此 `imghdr` 可以被追加的这个变量识别的文件格式的列表：

imghdr.tests

  执行单个测试的函数列表。每个函数都有两个参数：字节流和类似开放文件的对象。当 `what()` 用字节流调用时，类文件对象将是 `None`。

  如果测试成功，这个测试函数应当返回一个描述图像类型的字符串，否则返回 `None`。

範例：

    >>> import imghdr
    >>> imghdr.what('bass.gif')
    'gif'