コマンドラインから一連の画像を回転させる方法は?


17

すべて同じ解像度のJPEG画像が大量にあります。imagemagicまたはgimpのグラフィカルインターフェイス内でそれぞれを開くには時間がかかりすぎます。

各画像を回転させて同じファイル名として保存するにはどうすればよいですか?


3
こちらをご覧ください。ただし、JPEGの再エンコードは一般に損失を伴うことに注意してください。
桂佐藤

回答:


22

convert次のコマンドを使用できます。

 convert input.jpg -rotate -degrees out.jpg

例えば:

convert input.jpg -rotate -180 out.jpg

同じ名前で保存します。

convert file.jpg -rotate -180 file.jpg

すべてのファイルを回転させる:

for photo in *.jpg ; do convert $photo -rotate 90 $photo ; done

編集

@ don-crisstiがmogrify推奨するコマンドラインツール(最適なツール)を使用できます。

mogrify -rotate 90 *.jpg

1
thx、多くのファイルがある場合、-rotate -180の左側のファイル名は右側と同じでなければならないことをコマンドに伝えるにはどうすればよいですか?
sharkant

ファイルを180度回転させると、ファイルを左右に回転させても、常に同じ結果が得られます。
暗闇の中でdjsmiley2k

@ GAD3R 360度は、その後同じ画像になります。画像を左右に180度回転させると、両方が同じ画像になります(ただし、上下が逆になります)。
暗闇の中でdjsmiley2k

2
$CAPITAL_NAMES環境変数に任せる必要があります。シェルスクリプトまたはコマンドのこれらのローカル変数の使用$normal_lowercase
cat

2
convertJPEGを再エンコードするため、損失が大きくなります。より良い利用jpegtran
IMZ -イワンZakharyaschev

16

JPEG画像および直角の回転の場合、jpegtranまたはを使用しますexiftran。これらは画像を無損失で回転できるためです。

for f in *.jpg ; do 
    jpegtran -rotate 180 "$f" > "${f%.jpg}-rotated.jpg"
done

または、その場で回転するには:

for f in *.jpg ; do
    jpegtran -rotate 180 -outfile "$f" "$f"
done

exiftranまた-a、EXIF方向タグの内容に基づいて画像を自動的に回転させるフラグがあります。


反時計回り(左角度)との回転のためjpegtranの使用、-rotate 270及びexiftran使用と-2マニュアルに従ってフラグ。
ティモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.