# 39.11. `imgfile` --- SGI imglib ファイルのサポート

バージョン 2.6 で非推奨: `imgfile` モジュールは Python 3 で削除されました。

`imgfile` モジュールは、Python プログラムが SGI imglib 画像ファイル (`.rgb` ファイルとしても知られています) にアクセスできるようにします。このモジュールは完全なものにはほど遠いですが、その機能はある状況で十分役に立つものなので、ライブラリで提供されています。現在、カラーマップ形式のファイルはサポートされていません。

このモジュールでは以下の変数と関数を定義しています:

exception `imgfile.``error`

  この例外は、サポートされていないファイル形式の場合のような全てのエラーで送出されます。

`imgfile.``getsizes`(file)

  この関数はタプル `(x, y, z)` を返します。 x および y は画像のサイズをピクセルで表したもので、 z はピクセルあたりのバイト長です。3 バイトの RGB ピクセルと 1 バイトのグレイスケールピクセルのみが現在サポートされています。

`imgfile.``read`(file)

  この関数は指定されたファイル上の画像を読み出して復号化し、 Python 文字列として返します。この文字列は 1 バイトのグレイスケールピクセルか、4 バイトの RGBA ピクセルによるものです。左下のピクセルが文字列中の最初のピクセルになります。これは `gl.lrectwrite()` に渡すのに適した形式です。

`imgfile.``readscaled`(file, x, y, filter[, blur])

  この関数は read と同じですが、 x および y のサイズにスケールされた画像を返します。 filter および blur パラメタが省略された場合、単にピクセルデータを捨てたり複製したりすることによってスケール操作が行われるので、処理結果は、特に計算機上で合成した画像の場合にはおよそ完璧とはいえないものになります。

  そうする代わりに、スケール操作後に画像を平滑化するために用いるフィルタを指定することができます。サポートされているフィルタの形式は `'impulse'` 、 `'box'` 、 `'triangle'` 、 `'quadratic'` 、および `'gaussian'` です。フィルタを指定する場合、 blur はオプションのパラメタで、フィルタの不明瞭化度を指定します。デフォルトの値は `1.0` です。

  `readscaled()` は正しいアスペクト比をまったく維持しようとしないので、それはユーザの責任になります。

`imgfile.``ttob`(flag)

  この関数は画像のスキャンラインの読み書きを下から上に向かって行う (フラグがゼロの場合で、SGI GL 互換です) か、上から下に向かって行う (フラグが 1 の場合で、X 互換です) かを決定する大域的なフラグを設定します。デフォルトの値はゼロです。

`imgfile.``write`(file, data, x, y, z)

  この関数は data 中の RGB またはグレイスケールのデータを画像ファイル file に書き込みます。 x および y には画像のサイズを与え、 z は 1 バイトグレイスケール画像の場合には 1 で、RGB 画像の場合には 3 (4 バイトの値として記憶され、下位 3 バイトが使われます) です。これらは `gl.lrectread()` が返すデータの形式です。