おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

Imagemagick version 7 について

Imagemagickはコマンドラインから画像処理をするアプリケーションである。 ここでは4つの例を用いてImagemagick(バージョン7)を紹介したい。

  • 画像情報を得る
  • 画像の形式を変更する
  • リサイズする
  • 画像を重ねる

画像情報を得る

画像ファイルsample.jpgの情報を得るには「magick identify sample.jpg」と入力する。

$ magick identify sample.jpg
sample.jpg JPEG 320x240 320x240+0+0 8-bit sRGB 39567B 0.000u 0:00.002

バージョン7ではコマンド名は「magick」である。 バージョン6までの「identify」「convert」などのコマンドはバージョン7では使えない。 その代わりとして、バージョン7にはサブコマンドがあり、バージョン6の「identify」とバージョン7の「magick identify」は同じ機能を表す。

出力行から画像サイズが320x240であることなどが分かる。 詳細はImagemagickのウェブサイトを参照してほしい。

画像の形式を変更する

Jpeg画像をPng画像に変更することができる。

$ magick sample.jpg sample.png

Jpeg、Pngの他に多くの画像形式がサポートされている。

リサイズする

$ magick sample.jpg -resize 240x180 small.jpg

Resize

sample.jpgとsmall.jpgは同じ写真だが、画像サイズが320x240から240x180に変更された。

画像を重ねる

左上の女の子の画像は、長方形で背景部分が透明になったものである。 その画像をsample.jpgの花の画像に重ねると、女の子は見えるが透明部分は透けて、下の画像が現れる。

Composite

画像を重ねるImagemagickのコマンドは

$ magick composite girl.png -gravity South sample.jpg composite.jpg

である。 gravityオプションは1番めの画像(前景)を2番めの画像(背景)のどこに置くかを指定するものである。 Southでは下辺にあわせるように重ねる。

Imagemagickの利点

Imagemagickとgimpを比べると、前者がコマンド、後者がポインティングデバイス(マウスなど)によって実行される点が違う。 Imagemagickの利点はそのコマンドをプログラムからコントロールできる点である。 最も単純なケースはbashスクリプトでImagemagickを使うことである。 それによって、例えば同一ディレクトリ内のすべての画像に対しリサイズすることができる。

for x in `ls image_directory`; do
  echo "Converting $x ..."
  magick $x -resize 240x180 $x
done

他の言語でも可能である。 次回はrubyとrmagickを使って画像を処理する例について取り上げようと思う。