ImageMagick
提供: Oss4art
目次
概要
コマンドラインで実行できる、画像処理用パッケージ。画像のフォーマット変更・拡大縮小・合成・GIFアニメ作成など、 多様な仕事がこれ一本でコマンドラインから実行できるため、特に大量の画像ファイルの一斉変更に重宝する。 ただし機能と精度を優先に設計されており、やや速度が犠牲になっている。
すべての機能はライブラリ化して提供しているので、自作アプリケーションからの呼び出しもできる。 Perl 用ライブラリも提供されている他、各種言語むけのライブラリも開発されているので、シェルスクリプトではやりにくい複雑な処理をしたい場合はこちらを使うという手もある。 そこまで凝ったことをしなくとも、シェル経由でコマンドを呼び出して使うことでちょっとした画像処理がこなせるのは有難い。 CGI でよく使われている。
パッケージ内容
ImageMagick をインストールすると以下のコマンドが使えるようになる。
- animate - アニメーション GIF など動く画像をディスプレイ上で確認
- compare - 二つの画像を比較
- composite - 画像を重ねて合成
- conjure - ImageMagick の機能を使えるスクリプト言語の処理系
- convert - 画像のフォーマット変換・拡大縮小・フィルタ処理
- display - 画像表示
- identify - 画像の情報をテキストで表示
- import - スクリーンショットを撮る
- mogrify - convert と同じだが、処理結果を元の画像ファイルに格納する
- montage - 複数の画像を連接
この中でよく使うのは convert, identify, display だろう。
使い方例
GIF を JPEG に変換
convert a.gif a.jpg
ディレクトリ内のすべての GIF 画像を PNG に変換
mogrify -format png *.gif
この場合元の GIF 画像ファイルはそのままで、拡張子を .png にしたものが新たに生成される。
今いるディレクトリ内の JPEG 画像の一覧表を作る
montage -depth 8 -compress BZip -label "%f\n%wx%h" *.jpg list.miff
こうして作った MIFF ファイルを display で表示すると、それぞれのサムネイルで右クリックすると元画像を表示することができる。
なお -depth 8 -compress BZip
をつけないとファイルサイズが巨大なものになってしまうので注意。
画像の詳細情報を見る
identify -verbose a.png
Tips
- 標準のコンパイルオプションでは RGB 各要素の分解能が 16ビットとなる。画像処理を高精度に行うには適しているが、そのままだと出力画像も16ビットになってファイルサイズが大きくなったりソフトウェアによっては表示できなくなる場合がある。それを避けるには "-depth 8" オプションをつけるか、コンパイル時に "--with-quantum-depth=8" オプションをつけ、標準の分解能を 8ビットにすればよい。今使っている ImageMagick の標準の分解能を知るには、"convert -version" の出力を見る。"Q16" とあれば 16ビット。