ImageMagick

ImageMagickという画像処理ツールをご存知でしょうか?

どの言語を使っていても、画像処理をしようとすると一度はお世話になった事がある方も多いかと思われます。

ちなみに名前のスペルは誤字に見えますが敢えてこうなっているようです。余談ですがよくtypoします。

とても便利で使用場所を選ばない便利なツールですが、

少々癖のあるため中々やりたい事を実現する方法にたどり着けない事もあります。

そこで、ImageMagickと少し仲良くなるためのtipsを紹介したいと思います。

1. ImageMagickとは?

端的にまとめると、画像を操作するためのツールです。

  • 文字から画像を作成したり
  • 既存の画像の拡張子を変更したり
  • リサイズを行ったり
  • 画像の濃度をいじったり

出来る事は多岐に渡ります。

コマンドラインから呼び出す事も出来ますし、

各言語のライブラリを使用してプログラム内で使う事も出来ます。

(例、PHPならIMagickPythonならPythonMagickなど)

2. インストール方法

バージョンにこだわらなければ、下記ページのインストーラーからどうぞ。

大体その時の最新バージョンがインストールできます。

http://www.imagemagick.org/script/download.php

特定のバージョンが欲しい場合は、該当バージョンのソースを探してくる必要があります。

例えばこういう所から

https://launchpad.net/imagemagick/main/

試しに上記のサイトから6.7.8-9バージョンをインストールする際はこんな感じで、

ソースをダウンロードしてインストールファイルを作成し、それからインストールしてあげる必要があります。

cd 作業用適当なフォルダへ
wget https://launchpad.net/imagemagick/main/6.7.8-9/+download/ImageMagick-6.7.8-9.tar.gz
tar xvfz ImageMagick-6.7.8-9.tar.gz
cd ImageMagick-6.7.8-9/
./configure
make
make install

3. 画像をいじりたい!よくある例

・pngしか上げられないのに手元にjpgしかない……拡張子変えたい!

convert 元画像パス 変換後の画像パス

    例:convert test.jpg test_converted.png

ちなみに、jpgへ変換すると画像の透過情報などが消えるので要注意。

・ サンプル用にとあるサイズの画像が欲しいけど、一々生成サイト使うのは面倒。サイズ指定して画像を作りたい!

convert -size x xc:”色” 出力画像パス

    例:convert -size 100x200 xc:#000000 created.png

・ 作る画像のサイズ間違えた。リサイズしたい!

convert 元画像パス -resize x 出力画像パス

    例:convert created.png -resize 300x500 convert_after.png

・ てかそもそもこの画像ファイルの縦横サイズいくつ?

identify -format "%w %h" 調べたい画像パス

    例:identify -format "%w %h" test.png

上記コマンド実行で横幅と縦幅が出力されます。

・ 見出し画像などに。文言指定して文字から画像を作成したい!

convert -font フォント -size x -fill "文字色" -background 背景色 -kerning 文字間 -pointsize 文字サイズ caption:"出力する文字" 出力画像パス

    例:convert -font /Library/Fonts//AppleMyungjo.ttf -size 100x100 -fill “white” -background red -kerning 2.5 -pointsize 20 caption:”テスト” text.png

使えるフォントは

convert -list font

で見られます。

背景を透明にしたい場合は背景色指定をnoneに。

・ 別々に作ったけどやっぱり画像同士を重ねて使いたい!

convert -size 背景の横x背景の縦 xc:"背景色" 一枚目の画像パス -geometry +一枚目の画像の背景左上から横の位置+一枚目の画像の背景左上から縦の位置 -composite 重ねる画像パス -geometry +重ねる画像の背景左上から横の位置+重ねる画像の背景左上から縦の位置 -composite 出力画像パス

    例:convert -size 200x300 xc:"blue" created.png -geometry +10+20 -composite text.png -geometry +20+100 -composite comb_result.png

複数画像を重ねたい時は重ねる分だけ

-composite 重ねる画像パス -geometry +重ねる画像の背景左上から横の位置+重ねる画像の背景左上から縦の位置

の塊を増やしてください。

4. 困った時は

ImageMagickは書籍などで纏まっている情報が少ないのが難点の一つ。

こちらのサイトが、日本語で分かりやすく情報がまとまっているので困ったらまずどうぞ。

http://imagemagick.rulez.jp/

最新の情報にアクセスしたい方、ついでに英語の勉強もしたい方は公式へ。

https://www.imagemagick.org/

以上、普段は大体python触ってる社員その1でした。

2016/09/19その他
1