大量画像を一括でサイズ変換する
デジカメでよく写真を撮るようになったのだが、そのままだとサイズがかなり大きいので、
photoshopで画像加工する際にサイズを小さくしていた。
しかし数が多いので、いちいちGUIで個別に処理をするのは大変。
と、そこでImageMagickのコマンドで確かできたはず!と今さらのように思い出した。
(しばらく使っていなかったので忘れてました)
ImageMagickはUNIX系OSで使われている、オープンソースの画像加工ツール。
(Windowsにも移植版あり)
コマンドラインで画像加工するってこと自体新鮮だし、大量に処理をしたい時なんか
スゴイ威力を発揮する。
初めて使った時は「コマンドラインでこんなことが出来ちゃうんだー!」と感激した。
インストールはこちら(English)
情報はあまり沢山は出回っていないようではあるが、日本語でもいくつかのサイトで
使い方の案内などしているので、詳しくはお探しいただくとして・・・
最低限の情報として、インストール後は、実行ファイルのディレクトリにパスを通しておく
必要があることくらい書いておきマス。
実行ファイルが何処に展開されるかは環境により異なるが、どちらにしても、
.bashrcもしくは.profileなどに以下のように書いておけばコマンドが実行できるようになる
(もしかしたら最初からパスが通っているかもしれないので、その場合はもちろん不要)。
例
PATH=/sw/bin:$PATH
export PATH
(現在通っているパスに追加するにはPATH=/usr/local/bin:/sw/bin:$PATH
のようにコロンで区切る)
ImageMagickの実体は各種コマンド群となり、インストールするとすべて同じディレクトリ
に格納される。
コマンドの場所を確認するには、以下のようにwhichでImageMagickのコマンドを
何か指定してみるとよい。
$ which convert
標題の処理を行うには、mogrifyコマンドを利用すればよい。
以下簡単に説明すると・・・(Mac環境前提。Linuxでも同じはず)
1.ターミナル画面を開き、画像を格納したディレクトリに移動する。
$ cd images/
2.以下コマンドを実行。-geometryオプションの後にサイズを指定する(単位はピクセル)。
ディレクトリ内のすべてのファイルに適用され、一括でサイズ変換される。
$ mogrify -geometry 800×599 *.JPG
(画像の量によっては数分かかるかもしれないが、GUIで一個一個処理するより
はるかにいい!)
ちなみに上のコマンドはすべてのファイルが横位置である場合はいいのだが、
縦位置も混在している場合はどうするか?というと、以下の -resizオプションで、
パーセンテージ指定すればOK。
$ mogrify -resize 35% *.JPG
実際自分はこっちの方をよく使う。
うーむ、助かる。もうImageMagick様様、てな気持ち。
こんなスバラシイものをボランティアで開発してくださる、オープンソースコミュニティ
の精神に感謝。