\section{\module{imghdr} ---
         画像の形式を決定する}

\declaremodule{standard}{imghdr}
\modulesynopsis{ファイルやバイトストリームに含まれる画像の形式を決定する。}


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

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


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

以下に\function{what()}からの戻り値とともにリストするように、次の画像形式が認識されます:

\begin{tableii}{l|l}{code}{Value}{Image format}
  \lineii{'rgb'}{SGI ImgLib Files}
  \lineii{'gif'}{GIF 87a and 89a Files}
  \lineii{'pbm'}{Portable Bitmap Files}
  \lineii{'pgm'}{Portable Graymap Files}
  \lineii{'ppm'}{Portable Pixmap Files}
  \lineii{'tiff'}{TIFF Files}
  \lineii{'rast'}{Sun Raster Files}
  \lineii{'xbm'}{X Bitmap Files}
  \lineii{'jpeg'}{JPEG data in JFIF or Exif formats}
  \lineii{'bmp'}{BMP files}
  \lineii{'png'}{Portable Network Graphics}
\end{tableii}

\versionadded[Exif の検出]{2.5}

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

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

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

例:

\begin{verbatim}
>>> import imghdr
>>> imghdr.what('/tmp/bass.gif')
'gif'
\end{verbatim}
