web-dev-qa-db-ja.com

exifデータに基づいて画像を自動的に回転させる方法

カメラ(Olympus E-520)で写真を撮ると、EXIFデータに向きが保存されます。

Ubuntuの標準の画像ビューアは、この画像を正しく表示しています。しかし、Windowsビューアはそうではありません。

Ubuntuでバッチでこの画像を(必要に応じてEXIFに従って)本当に回転させる方法はありますか?たとえば、ImageMagickツールでは?

31
Peter Smit

exiftran および JHead(jhead -autorot はこれを行うことができます。 exiftranはこれを無損失で実行できますが、jheadについては不明です。

39
user7963

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)または必要なものを取り込むことができます。

12
opello

XnView を使用してそれを行うことができます。 XnViewを使用してバッチモードで自動回転を行う方法については、以下のページをご覧ください。

Windowsでは、 IrfanView を使用してそれを行うことができます。 IrfanViewウェブサイトからFAQセクション:

Q:JPGロスレスオペレーション(ローテーション、IPTC、コメント)をバッチモードで使用する方法

A:サムネイルウィンドウを起動し、JPGが含まれているフォルダーを開き、多数のJPGを選択し、サムネイルメニューでJPGロスレスオペレーションのファイルを選択->ロスレストランスフォーメーションを選択親指。注:自動回転オプションは、EXIF方向タグが(左上ではなく)正しく保存されている場合にのみ機能します。

2
swatkat

ImageMagickでは、mogrifyを使用してファイルを回転させ、回転した画像を元のファイル名に書き戻すこともできます。

mogrify -auto-orient *.jpg
1
Andy Gee