ツール JpegTran連携 Back

IJG(The Independent JPEG Group's)という団体より、JPEG関連ソフトで、JpegTran.exeというソフトが配布されています。

このソフトは、JPEGフォーマットの色々な変換をロスレスで行える優秀なものです。
ただ、コマンドラインユーティリティなので、使う場合はDOS窓でコマンドを打たなくてはなりません。

JpegAnalyzerは、メニュー項目に従って変換コマンドを発行し、JpegTranを起動します。
「JpegTran連携」は、簡単なメニュー操作でJpegTranの持つ機能を使えるようにしたものです。

JpegTran.exeはインターネット経由でダウンロードできます。(フリーソフト)

ソフトウェア工房αさんのページにはWin32用に移植されたバージョンと日本語マニュアルを配布されています。 オススメ
http://cetus.sakura.ne.jp/softlab/software2/index.html

本家IJG版でも動作確認しましたが、問題なく使えます。
上のリンク以外のダウンロード先は検索サイトでJpegTran.exeをキーに探して見て下さい。

入手したJpegTran.exeをJpegAnalyzerのインストールフォルダーに保存して下さい。

インストールフォルダーにJpegTran.exeが有り、JPEG解析画面を表示していれば、ツールメニューに「JpegTran連携」の項目が表示されます。


ハフマン最適化

チェック無し−ベースライン形式を出力した場合、汎用ハフマンテーブル
チェック有り−最適化ハフマンテーブル

プログレッシブを選択するとチェックは外れます。

プログレッシブ

チェック無し−ベースライン形式
チェック有り−プログレッシブ形式

ベースラインのみ有効な項目を選択するとチェックは外れます。(ハフマン最適化、リスタートインターバル)

ラインインターバル

Photoshopでリスタートインターバル指定した場合と同じ、1ライン間隔で画像を区切ります。

プログレッシブまたはブロックインターバルを選択するとチェックは外れます。

ブロックインターバル

デジタルカメラのリスタートインターバルと同じ、4MCU間隔で画像を区切ります。

プログレッシブまたはラインインターバルを選択するとチェックは外れます。
上記2項目のいずれもチェックが無いとリスタートインターバル処理はされません。

右回転

画像を時計回りに90度ロスレス回転します。

左回転

画像を反時計回りに90度ロスレス回転します。

上記2項目のいずれもチェックが無いと回転処理はされません。また、同時にチェックすることは出来ません。

回転指定はファイルの読み込みやJpegTran実行毎にリセットされます。
また、Exifの0th-IFD、0x0112タグ「画像の方向」で右90度または左90度回転が記録され、横長の画像の場合、修正方向のチェックが自動で付きます。
携帯電話のカメラなどで基本は縦長のものもありますが、回転位置を記録する機種は余り聞かないのでこう言った仕様にしています。

回転処理をするとDQTのテーブル名またはCRCの値が変化することがあります。
これは量子化テーブルの横方向と縦方向に位置する値が逆転し順序が変わるためで、異常ではありません。

半端画像の除去

回転時に半端な画像が有った場合、切り落とします。

画像データの構造のページで説明されているパディングが有る画像の場合、回転するとパディング部が上端や左端に移動します。
JPEG処理上、これらの半端な画像は上端や左端では表示出来ずに残ってしまい下端や右端に表示されます。
これらの半端な画像を切り落としてしまうオプションです。

チェックが有っても回転処理が指定されていない場合は無効です。
また、画像の一部を削除してしまうのでロスレスにはなりません。

パディング部が上端や左端に移動しない場合は残ります。
例えば右端にパディングが有り、時計回りに90度回転すると、パディング部は下端に移動し、この部分では表示可能なので、切り落とされずに残ります。

グレイスケール

グレイスケールJPEGに変換します。
色差成分の画像データを捨ててしまうことになるので、ロスレスではありません。

APP/COMを残す

チェック無し−APP0(JFIF)以外のAPP/COMセグメントは削除されます。
チェック有り−APP/COMセグメントは残ります。

いずれの設定でもAPP0(JFIF)は付加されます。

テーブル連結

チェック無し−DQT/DHTテーブルは1セグメント1テーブルで記録されます。
チェック有り−DQT/DHTテーブルはまとめて記録されます。

JpegTran実行

上記設定に従い、JpegTranを実行します。

処理後、解析リストが更新されます。
他のJPEG編集操作と同じく保存をする必要が有ります。


ファンクションキーでの操作

JpegTranで定型処理する場合に便利なようにファンクションキーに機能を割り当てています。
上記メニュー項目は関係無く、メニュー項目に無いオプション指定も出来ます。

JpegAnalyzer.iniの[JpegTran]セクションにキーを追加することで有効になります。
JpegTranOption1="オプション"
JpegTranOption2="オプション"

=の後にJpegTranの説明書に有るオプションを記述します。
テーブル連結はJpegAnalyzerの機能なので説明書には有りません。指定するには"-coupling"を追加して下さい。
また、キーが記述されていない状態(初期状態)であれば、ファンクションキーを押しても何もしません。

例)JpegTranOption1="-optimize -coupling"

JpegTranOption1がF9キー、JpegTranOption2がF10キーに対応


注意事項

以下の状態の時はファンクションキーを押しても反応しません。
・JpegAnalyzer以外のウインドウに制御が移っている場合(タイトルバーがグレーの時)
・JPEG解析画面以外を表示している時

JpegTranOptionX=""(ベースライン、汎用ハフマンテーブル指定)の場合、"しばらくお待ちください"をウインドウタイトルに表示して止まってしまう場合が有ります。
原因は判っていませんが、ウインドウの内でも外でもどこかをクリックすると進むようです。