カメラ(Olympus E-520)で写真を撮ると、EXIFデータに向きが保存されます。
Ubuntuの標準の画像ビューアは、この画像を正しく表示しています。しかし、Windowsビューアはそうではありません。
Ubuntuでバッチでこの画像を(必要に応じてEXIFに従って)本当に回転させる方法はありますか?たとえば、ImageMagickツールでは?
exiftran
および JHead(jhead -autorot
) はこれを行うことができます。 exiftran
はこれを無損失で実行できますが、jhead
については不明です。
ImageMagickの変換ツールには、ジョブを完了するための -auto-orient フラグがあります。
#!/bin/bash
JHEAD=jhead
SED=sed
CONVERT=convert
for f in *.jpg
do
orientation=$($JHEAD -v $f | $SED -nr 's:.*Orientation = ([0-9]+).*:\1:p')
if [ -z $orientation ]
then
orientation=0
fi
if [ $orientation -gt 1 ]
then
echo Rotating $f...
mv $f $f.bak
$CONVERT -auto-orient $f.bak $f
fi
done
現在のディレクトリの* .jpgを反復処理する簡単なスクリプトを一緒に投げました。これを簡単に変更して、パス($ 1)または必要なものを取り込むことができます。
XnView を使用してそれを行うことができます。 XnViewを使用してバッチモードで自動回転を行う方法については、以下のページをご覧ください。
Windowsでは、 IrfanView を使用してそれを行うことができます。 IrfanViewウェブサイトからFAQセクション:
Q:JPGロスレスオペレーション(ローテーション、IPTC、コメント)をバッチモードで使用する方法
A:サムネイルウィンドウを起動し、JPGが含まれているフォルダーを開き、多数のJPGを選択し、サムネイルメニューでJPGロスレスオペレーションのファイルを選択->ロスレストランスフォーメーションを選択親指。注:自動回転オプションは、EXIF方向タグが(左上ではなく)正しく保存されている場合にのみ機能します。
ImageMagickでは、mogrifyを使用してファイルを回転させ、回転した画像を元のファイル名に書き戻すこともできます。
mogrify -auto-orient *.jpg