# 9 `imghdr` -- 画像の形式を決定する

`imghdr`モジュールはファイルやバイトストリームに含まれる画像の形式を決定します。

`imghdr`モジュールは次の関数を定義しています:

`what`( | filename[, h])

  filenameという名前のファイル内の画像データをテストし、画像形式を表す文字列を返します。オプションのhが与えられた場合は、filenameは無視され、テストするバイトストリームを含んでいるとhは仮定されます。

以下に`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

バージョン 2.5 で 新たに追加 された仕様: Exif の検出

この変数に追加することで、あなたは`imghdr`が認識できるファイル形式のリストを拡張できます:

`tests`
  個別のテストを行う関数のリスト。それぞれの関数は二つの引数をとります: バイトストリームとオープンされたファイルのようにふるまうオブジェクト。`what()`がバイトストリームとともに呼び出されたときは、ファイルのようにふるまうオブジェクトは`None`でしょう。

  テストが成功した場合は、テスト関数は画像形式を表す文字列を返すべきです。あるいは、失敗した場合は`None`を返すべきです。

例:

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