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
     形式でオンラインから取得できます。
