bogamp.hatenablog.com
上の記事の続き。基本的にBasic Usage -- ImageMagick Examples、File Handling -- ImageMagick Examples、ImageMagick – Command-line Processingに書いてある内容を咀嚼しただけ。
convertのオプション(引数)の順番
まず、Imagemagickは実行時に仮想的な画像リストを持っていると考える。すると、指定できるオプション(引数)は大まかに三種類に分類できる。
- 画像リストに画像を追加する
- 画像に何らかの処理を行って変更する
- 設定を変更する
これらとは別に、最後に指定した引数が出力先になる。
画像を追加するオプション
一番簡単なのはファイル名をそのまま指定する(example.jpg
)ことだが、他にも追加する方法がいくつかある。たとえば、
xc:[色]
もしくはcanvas:
で単色の画像を追加できる(事前に-size
でサイズを指定する必要あり)。logo:
だとビルトインのロゴ画像が追加され、plasma:[色]だと
プラズマ風の画像が追加される。画像に何らかの処理を行うオプション
これはメインの機能で、1.一つの画像に処理を行うものと、2.複数の画像から一枚の画像を作るものに分けられる。一つの画像に処理を行うもの
前回記事で紹介したものの多くがこれで、-resize
や-crop
などがある。画像リストが複数ある場合、すべての画像に同じ処理が行われる。
複数の画像から一枚の画像を作るもの
-append
などがある。設定を変更するオプション
-gravity
、-fill
、-size
など、上二つに当てはまらないものは基本これにあたる。注意点としては、
- 左から右へ順番に実行される
- 設定は一度変更したら(処理を行っても)リセットされない
この2点に気をつける。
具体例
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
(途中で設定変更もできる)
入れ子コマンド
SQLのサブクエリのように、処理を行った画像を画像リストに加え、更に処理を加えることもできる。()で囲むだけなのだが、注意点として、
この3点には気をつける必要がある。
例
convert -size 200x10 \(-size 100x100 canvas:violet canvas:aqua +append\)\( canvas:gold canvas:salmon +append\)-append result.jpg
-size
による設定の変更は、丸カッコと関係なく左から右へ順番に適用されるので、canvas:
で生成される画像はすべて100x100サイズになる。
画像の特殊な追加方法
ファイル名以外で、Imagemagickの処理中に画像を追加できる方法についてまとめておく。- 組み込みの画像
logo:
、rose:
、granite:
、wizard:
など
- パターン
pattern:[パターン]
のように指定する。パターンのリスト canvas:
(xc:
)、fractal:
、gradient:
、plasma:
、radial_gradient:
これらは色を指定できる。- 標準入力
-
- URL
- @[テキストファイル] テキストファイル内に書いてある画像ファイルを順番に追加する。
画像の特殊な出力方法
特殊な出力先の指定方法についてもまとめておく。- フォーマットの明示 png:(出力先)やjpg:(出力先)のように書くと出力フォーマットを明示的に指定できる。標準出力など、拡張子でフォーマット指定できない場合に使える
- 標準出力
-
show:
画像を保存せず、ディスプレイに表示する