出自がUNIX系のアプリケーションであるため、ImageMagickでは「-help」オプションで簡単なヘルプを表示できる。「-usage」オプションだともう少し詳しいヘルプが表示される。オプションなどを確認するには、「ImageMagick convert」などとしてオプションを省略すると、オプションを含む詳細なヘルプが表示される。
また、既定のWebブラウザでImageMagickのサイトを開きたければ、以下のようにする(https://www.imagemagick.orgが開く。オプションが一つ必須となるので、-helpを付けている)。
magick.exe browse: -help
もう一つ、ImageMagickには、コマンドラインで利用できるパラメーターを表示させる「-list」オプションがある。例えば、色の指定はRGB値の他に、「Skyblue」といった色の名前でも指定可能だ。コマンドラインで利用可能な色名を表示させるには、以下のようにする。
magick.exe -list color
どのようなものをリストさせることが可能なのかは「-list list」で確認できる。
ヘルプやWebサイトのドキュメントで注意することは、もともとUNIX系のアプリケーションとして開発されているため、一部の機能はWindows OSでは動作せず、X11 Window Systemでしか動作しない点に注意したい。
ImageMagickのコマンドラインを理解する一つのポイントは「デレゲート(delegate、委譲)」だ。デレゲートとは、ImageMagickが画像形式を変換する場合などに使う仕組みだが、同じ機構を使って、組み込み画像や組み込みパターン、外部プログラムの起動などに利用できる。
コマンドライン中のパラメーター(オプションでないもの)のうち、単語末尾に「:」が付いているものがデレゲートだ。例えば、ImageMagickは組み込み画像として「rose:」や「logo:」といったものがある。動作サンプルなどを示す場合に、特に画像を用意することなく利用できる。
例えば、画像の一部を切り取る-cropオプションを解説する場合、以下のようにする。
magick logo: show:
magick logo: -crop 100x100+270+190 show:
「logo:」は、組み込みのロゴ画像で魔法使いの絵である。「show:」は、imdisplay.exeを起動するためのもので、どちらもデレゲートだ。
ImageMagickは、ファイルの拡張子を見て、フォーマットを自動で判定している。しかし、標準入出力を使う場合、拡張子がなく、フォーマットを指定できない。このような場合にデレゲートを使って画像形式を指定できる。
magick logo: PNG:- | magick - -identify nul
標準で利用できるデレゲートのうち、画像形式、組み込み画像、組み込みパターンについては、以下のURLに記述があるので参照してほしい。
デレゲートには「組み込み」と「外部」があり、外部デレゲートは、ImageMagickのインストール先にある「delegates.xml」で定義されている他、ユーザーが環境変数などを指定して、別の場所にdelegates.xmlを配置することも可能だ。また、外部デレゲートに関しては、以下で表示させることもできる。
magick.exe -list delegate
ただし、デレゲートの定義では、-list表示を抑制する「Stealth」指定が可能なので、全ての定義を見るには、xmlファイルを見る必要がある。
ここでは筆者がよく利用しているImageMagickの応用例を示す。
画像を一定サイズに縮小したいという作業はかなり多く、筆者も、記事を作成するたびに写真などをImageMagickで処理している。こうしたとき、一定サイズ以上ならば縦横比を維持したまま縮小するが、それ以下の画像はそのままにしたいことが多い。こうした場合、ImageMagickでは、「-resize」オプションで以下のように指定する。
magick rose: logo: -resize "320x320>" -identify nul
ポイントは、resizeオプションのジオメトリー指定「320x320>」である。resizeオプションでは、サイズをX11のジオメトリーをベースにしたImageMagickのジオメトリー指定を行うが、「320x320>」は、「縦横のどちらかが320ドットを越えていたら縮小する」という意味だ。似たような指定に「320x320」があるが、この場合、縦横ともに320ドット以下であれば拡大が行われてしまう。なお、ジオメトリー指定については、以下のURLに記述がある。
次は、PDFファイルの表紙ページのサムネイル作成だ。これには、GhostScriptが必要なので事前にインストールしておく(Chocolateyでインストールしておくとよい。知っトクWindowsツール「コマンドでWindowsアプリを楽々管理『Chocolatey』」参照のこ)。
choco install GhostScript
GhostScriptは、PostScriptの互換プログラムで、これを利用することでImageMagickはPDFファイルを扱えるようになる。
PDFファイルの最初のページ(0ページ目)をサムネイル画像にするには、以下のようにする。
magick sample.pdf[0] -type TrueColorMatte -thumbnail x600 -background white -alpha remove thumb.png
なお、「-type TuneColorMatte」は、PDFページがグレースケールで生成されていた場合にカラーに変換する機能だ。PDFページがカラーの場合には指定する必要がないのだが、グレースケールの場合には、これを指定しないと警告が表示される。
また、さまざまな作業中にちょっとした画像ファイルが欲しくなることがある。ImageMagickを使うと、文字列をレンダリングして画像ファイルを作ることができる。
magick -font "Yu-Gothic-Light-&-Yu-Gothic-UI-Light" -size 100x100 -gravity center label:"日本語\nラベル" lbl.png
利用できるフォントは、「-list font」で調べることができる。
駆け足で紹介したが、ImageMagickは、コマンドラインでほとんどの画像処理をこなせ、さらにはデレゲートによる機能拡張も可能だ。世の中にはGUI系の画像ユーティリティーは数多くあるが、たいていは起動に時間がかかり、起動しておくとメモリを占有する。
しかし、ImageMagickは、コマンドラインプログラムであり、起動時の待ち時間はなく、処理が終わればメモリは解放される。使い方を覚えれば、これほど便利なコマンドはないと実感できる。インストールサイズは80MBほどと、今や気にするほどの容量でもない。インストールしておけば、イザというときに役立つだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.