ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Linuxで無劣化で画像を回転する

(2022-07-28 初稿)

Linuxexifを操作して、無劣化で画像を回転するためのメモ。

Exifを確認

まずは、写真などの画像のexifデータを調べる。

以下を参照した。多謝。m(__)m

sudo apt install imagemagick

imagemagickに含まれるidentiferでexifを確認できる。

identify -verbose  画像ファイル

画像を無劣化で回転

ExifのOrientationを変更することによって、画像を無劣化で回転する。

無劣化の回転のため、libimage-exiftool-perlをインストール。

sudo apt install libimage-exiftool-perl

画像の回転は、以下のコマンドで実行する。

exiftool -Orientation#=2 sample.jpg

exiftoolのオプション指定が難しい。

man exiftoolで確認すると、以下はすべて同じ回転をする。

$ exiftool -Orientation='Rotate 90 CW' a.jpg
$ exiftool -Orientation=6 -n a.jpg
$ exiftool -Orientation#=6 a.jpg

以下のサイトを参考に、一番簡単そうな番号で指定することにした。

1 = Horizontal (normal) : 標準
2 = Mirror horizontal   : 水平方向に反転
3 = Rotate 180          : 180°回転
4 = Mirror vertical     : 垂直方向に反転
5 = Mirror horizontal and rotate 270 CW :反時計回りに90°回転および垂直方向に反転
6 = Rotate 90 CW        : 反時計回りに90°回転
7 = Mirror horizontal and rotate 90 CW  : 時計回りに90°回転および垂直方向に反転
8 = Rotate 270 CW       :方向: 時計回りに90°回転

exifを削除

ちなみに、設定値を削除するには、オプション=の右側に空白を設定する。

exiftool -Artist= (ファイル名)

一部のコマンドを一括して削除することもできる。

exiftool -gps:all= (ファイル名)

劣化するけど回転角度を細かく指定する

細かい角度をしてするには、imagemagickに含まれているconvertコマンドを利用する。

ただし、細かい角度を指定した場合は、再圧縮時にロスが生じるため、劣化が起きてしまう点に注意。

$ convert -rotate -3.5 desktop01.png desktop03.png

関連ページ