WindowsではViXを使ってJPEG画像の無劣化回転処理を行ってきたが、Linuxではどのプログラムを使えばよいのだろうか…
■ convert コマンド
# ls -la test.jpg
-rw-r--r-- 1 vm vm 938385 2010-02-13 21:51 test.jpg
#convert -rotate 90 test.jpg test.jpg
#convert -rotate 90 test.jpg test.jpg
#convert -rotate 90 test.jpg test.jpg
#convert -rotate 90 test.jpg test.jpg
# ls -la test.jpg
-rw-r--r-- 1 vm vm 1154282 2010-02-13 21:52 test.jpg
#convert -rotate 90 test.jpg test.jpg
#convert -rotate 90 test.jpg test.jpg
#convert -rotate 90 test.jpg test.jpg
#convert -rotate 90 test.jpg test.jpg
# ls -la test.jpg
-rw-r--r-- 1 vm vm 1151882 2010-02-13 21:53 test.jpg
90度回転を4回で、元に戻っていないので、無劣化ではないと思う。(何種類化の実験の結果、Exifタグ有り無し二関わらず、ファイルサイズが変化した)
■ gthumb
Exifタグが付いた画像ファイルを回転すると、単にExifタグ内の
# ls -la test.jpg
-rwxr-xr-x 1 vm vm 938385 2010-02-13 21:51 test.jpg
# env LANG=C exif test.jpg |grep Orientation
Orientation |right - top
~ ここで、gthumbの回転処理(右90度)を行う ~
# ls -la test.jpg
-rwxr-xr-x 1 vm vm 938385 2010-02-13 22:56 test.jpg
# env LANG=C exif test.jpg |grep Orientation
Orientation |bottom - right
Exifデータとサムネイル画像を削除して、どうなるか見てみる。
# exif --remove -o test.jpg test.jpg
Wrote file 'test.jpg'.
# exif -r -o test.jpg test.jpg
Wrote file 'test.jpg'.
# ls -la test.jpg
-rw-r--r-- 1 vm vm 879217 2010-02-13 23:15 test.jpg
~ ここで、gthumbの回転処理(右90度)を4回行う (合計360度) ~
# ls -la test.jpg
-rw-r--r-- 1 vm vm 835749 2010-02-13 23:16 test.jpg
ファイルサイズ変わってますね…。無劣化回転ではないと思います。
■ MaPiVi
Exifデータとサムネイルを削除した後に、Edit - rotate - rotate right (lossless) を実行した前後の結果を比べてみた。
# ls -la test.jpg
-rw-r--r-- 1 vm vm 879217 2010-02-13 23:18 test.jpg
# ls -la test.jpg
-rw-r--r-- 1 vm vm 835749 2010-02-13 23:19 test.jpg
ファイルサイズ変わってますね…。無劣化回転ではないと思います。
■ 参考リンク
・Lossless jpegtran applications