画像処理を簡単に行う方法です。Linuxで作業を行う場合、ImageMagickを使うことが多いです。ImageMagickには、コマンドラインツールが豊富なので、バッチ処理などを使ってGUIを使わずとも画像処理ができるのが魅力です。面倒な画像処理をスクリプトで一括処理、なんてことも簡単にできてしまいます。
ImageMagick
ImageMagick とは
ImageMagick(イメージマジック)は画像を操作したり表示したりするためのソフトウェアスイートである。GIF、JPEG、JPEG 2000、PNG、PDF、Photo CD、TIFF、DPXなど100種類以上の画像ファイルフォーマットに対応している。
ImageMagick 参考サイト
ImageMagick Command-line Tools
ImageMagick 使い方
ImageMagick インストール
$ sudo apt install imagemagick
ImageMagick よく使うコマンド convert
下記の画像(water.jpg)を、ImageMagickのconvert
コマンドで画像処理してみます。

画像サイズ変更
画像サイズを変更する場合は、convert
コマンドを使います。-geometry
オプションで、画像サイズを指定したり(100×100 など)・縮小を%で指定したり(50%x50% など)して変更することができます。下記サンプルでは、全て50%にリサイズした画像が生成されます。
$ convert -geometry 391x225 water.jpg water_size391x225.jpg
$ convert -geometry 391x water.jpg water_size391x.jpg
$ convert -geometry 50%x water.jpg water_size50p.jpg

画像フォーマット変換
画像フォーマットを変更する場合は、convert
コマンドを使います(サイズ変更と同様)。オプションなしで指定した拡張子に変更することができます。
$ convert water.jpg water.png
画像回転
画像の回転を行う場合は、convert
コマンドを使います(サイズ変更と同様)。-rotate
オプションで回転角度を指定して回転することができます。
$ convert -rotate 90 water.jpg water_rotate90.jpg

画像2値化・グレースケール
画像の2値化(白黒)を行う場合は、convert
コマンドを使います(サイズ変更と同様)。-threshold
オプションで輝度値を指定して2値化することができます。
$ convert -threshold 10% water.jpg water_threshold10p.jpg

画像のグレースケール化を行う場合は、-monochrome
オプションを指定します。
$ convert -monochrome water.jpg water_monochrome.jpg

モザイク画像
画像のモザイク処理を行う場合は、convert
コマンドを使います(サイズ変更と同様)。-sample
オプションを2つ指定します。2つのサイズを掛けて1になるように指定します(ならないとサイズが変更されます)。例えば、10%・1000%、20%・500%という風に指定します。
$ convert -sample 10% -sample 1000% water.jpg water_sample.jpg

その他の機能
ImageMagickにはたくさんの機能があります。-help
コマンドで確認することができます。
$ convert -help
スクリプトで画像一括処理
サイズ変更やフォーマット変換など、同じ画像処理を複数の画像に行う場合は、スクリプトでバッチ処理を行うのが便利です。
一括サイズ変換
スクリプト – resize_jpg.sh
フォルダ内「.jpg」拡張子をもつファイルをみつけて、1つずつ半分のサイズに変更します。サイズ変更後のファイルは、「resized」フォルダに名前を「_small.jpg」で保存します。
関連事項
Linuxコマンド ディレクトリを作成する mkdir
Linuxコマンド ファイルを確認する ls
bash for文の書き方
bash 変数の使い方
bash 文字列置換
#! /bin/bash # リサイズ後の画像を保存するフォルダ RESULT="resized" mkdir -p ${RESULT}/ for x in *.jpg; do echo $x # みつけたjpgファイルを半分のサイズに変更 # ファイル名を_small.jpgにして指定ディレクトリに保存 convert $x -geometry 50% ${RESULT}/${x/.jpg/_small.jpg} done
スクリプトの実行
$ ls resize_jpg.sh water1.jpg water2.jpg water3.jpg $ chmod +x ./resize_jpg.sh $ ./resize.sh