39.12. jpeg
--- JPEG ファイルの読み書きを行う¶
バージョン 2.6 で非推奨: jpeg
モジュールは Python 3 で削除されました。
この 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
Pennebaker と Mitchell による、 JPEG 画像フォーマットの正統的な参考文献。
- Information Technology - Digital Compression and Coding of Continuous-tone Still Images - Requirements and Guidelines
JPEG の ISO 標準は ITU T.81 としても発行されています。これは PDF 形式でオンラインから取得できます。