bogamp.hatenablog.com
上の記事の続き。基本的にBasic Usage -- ImageMagick Examples、File Handling -- ImageMagick Examples、ImageMagick – Command-line Processingに書いてある内容を咀嚼しただけ。
1.convertのオプション(引数)の順番
まず、Imagemagickは実行時に仮想的な画像リストを持っていると考える。すると、指定できるオプション(引数)は大まかに三種類に分類できる。
- 画像リストに画像を追加する
- 画像に何らかの処理を行って変更する
- 設定を変更する
これらとは別に、最後に指定した引数が出力先になる。
1.1.画像を追加するオプション
一番簡単なのはファイル名をそのまま指定する(example.jpg)ことだが、他にも追加する方法がいくつかある。たとえば、
xc:[色]もしくはcanvas:で単色の画像を追加できる(事前に-sizeでサイズを指定する必要あり)。logo:だとビルトインのロゴ画像が追加され、plasma:[色]だとプラズマ風の画像が追加される。1.2.画像に何らかの処理を行うオプション
これはメインの機能で、1.一つの画像に処理を行うものと、2.複数の画像から一枚の画像を作るものに分けられる。1.2.1.一つの画像に処理を行うもの
前回記事で紹介したものの多くがこれで、-resizeや-cropなどがある。画像リストが複数ある場合、すべての画像に同じ処理が行われる。
1.2.2.複数の画像から一枚の画像を作るもの
-appendなどがある。1.3.設定を変更するオプション
-gravity、-fill、-sizeなど、上二つに当てはまらないものは基本これにあたる。注意点としては、
- 左から右へ順番に実行される
- 設定は一度変更したら(処理を行っても)リセットされない
この2点に気をつける。
1.4.具体例
convert -size 200x200 canvas:red canvas:blue +append result.jpg
(設定したサイズは両方に適用される)

convert canvas:red -size 200x200 canvas:blue +append result.jpg
(canvas:redはsizeを設定していないため1ピクセルだけになっている(見えない))

convert -size 200x200 canvas:red -size 50x200 canvas:blue +append result.jpg
(途中で設定変更もできる)

1.5.入れ子コマンド
SQLのサブクエリのように、処理を行った画像を画像リストに加え、更に処理を加えることもできる。()で囲むだけなのだが、注意点として、
この3点には気をつける必要がある。
1.5.1.例
convert -size 200x10 \( -size 100x100 canvas:violet canvas:aqua +append \) \( canvas:gold canvas:salmon +append \) -append result.jpg

-sizeによる設定の変更は、丸カッコと関係なく左から右へ順番に適用されるので、canvas:で生成される画像はすべて100x100サイズになる。
2.画像の特殊な追加方法
ファイル名以外で、Imagemagickの処理中に画像を追加できる方法についてまとめておく。- 組み込みの画像
logo:、rose:、granite:、wizard:など
- パターン
pattern:[パターン]のように指定する。パターンのリスト canvas:(xc:)、fractal:、gradient:、plasma:、radial_gradient:これらは色を指定できる。- 標準入力
- - URL
- @[テキストファイル] テキストファイル内に書いてある画像ファイルを順番に追加する。
3.画像の特殊な出力方法
特殊な出力先の指定方法についてもまとめておく。- フォーマットの明示 png:(出力先)やjpg:(出力先)のように書くと出力フォーマットを明示的に指定できる。標準出力など、拡張子でフォーマット指定できない場合に使える
- 標準出力
- show:画像を保存せず、ディスプレイに表示する