前のトピックへ

38.11. imgfile — SGI imglib ファイルのサポート

次のトピックへ

39. SunOS 固有のサービス

このページ

38.12. jpeg — JPEGファイルの読み書きを行う

バージョン 2.6 で撤廃: jpeg モジュールは Python 3.0 での削除に向けて非推奨になりました。

この jpeg モジュールは Independent JPEG Group (IJG) によって書かれた JEPG 圧縮及び展開アルゴリズムを提供します。 JPEG 形式は写真等の画像圧縮で標準的に利用され、ISO 10918で定義されてます。 JPEG、あるいは Independent JPEG Group ソフトウェアの詳細は、標準JPEG、若しくは提供されるソフトウェアのドキュメントを参照してください。

JPEGファイルを扱うポータブルなインタフェースは Fredrik Lundh による Python Imaging Library (PIL)があります。また、PILの情報は http://www.pythonware.com/products/pil/ で見つけることができます。

モジュール jpeg では、一つの例外といくつかの関数を定義しています。

exception jpeg.error

関数 compress() または decompress() のエラーで上げられる例外です。

jpeg.compress(data, w, h, b)

イメージファイルの幅 w 、高さ h 、1ピクセルあたりのバイト数 b を引数として扱います。データは SGI GL 順になっていて、最初のピクセルは左下端になります。また、これは gl.lrectread() が返す値をすぐに compress() にかけるためです。現在は、1 バイト若しくは 4 バイトのピクセルを取り扱うことができます。前者はグレースケール、後者はRGBカラーを扱います。 compress() は、圧縮された JFIF 形式のイメージが含まれた文字列を返します。

jpeg.decompress(data)

データは圧縮された JFIF 形式のイメージが含まれた文字列で、この関数はタプル (data, width, height, bytesperpixel) を返します。また、そのデータは gl.lrectwrite() を通過します。

jpeg.setoption(name, value)

compress()decompress() を呼ぶための様々なオプションをセットします。次のオプションが利用できます:

オプション 効果
'forcegray' 入力がRGBでも強制的にグレースケールを出力します。
'quality' 圧縮後イメージの品質を 0 から 100 の間の値で指定します (デフォルトは 75 です)。これは圧縮にのみ影響します。
'optimize' ハフマンテーブルを最適化します。時間がかかりますが、高圧縮になります。これは圧縮にのみ影響します。
'smooth' 圧縮されていないイメージ上でインターブロックスムーシングを行います。低品質イメージに役立ちます。これは展開にのみ影響します。

参考

JPEG Still Image Data Compression Standard
The canonical reference for the JPEG image format, by Pennebaker and Mitchell.
Information Technology - Digital Compression and Coding of Continuous-tone Still Images - Requirements and Guidelines
The ISO standard for JPEG is also published as ITU T.81. This is available online in PDF form.