コマンドラインで画像処理が行える便利ツール「ImageMagick」知っトクWindowsツール(2/2 ページ)

» 2018年09月25日 05時00分 公開
[塩田紳二]
前のページへ 1|2       

ヘルプとリストを参照して使い方を知る

 出自がUNIX系のアプリケーションであるため、ImageMagickでは「-help」オプションで簡単なヘルプを表示できる。「-usage」オプションだともう少し詳しいヘルプが表示される。オプションなどを確認するには、「ImageMagick convert」などとしてオプションを省略すると、オプションを含む詳細なヘルプが表示される。

ヘルプオプションの実行 ヘルプオプションの実行

magick.exe -usageの実行例 magick.exe -usageの実行例
「-usage」オプションを付けると、もう少し細かいヘルプが表示される。

 また、既定のWebブラウザでImageMagickのサイトを開きたければ、以下のようにする(https://www.imagemagick.orgが開く。オプションが一つ必須となるので、-helpを付けている)。

magick.exe browse: -help

既定のWebブラウザでImageMagickのサイトを開くコマンド

 もう一つ、ImageMagickには、コマンドラインで利用できるパラメーターを表示させる「-list」オプションがある。例えば、色の指定はRGB値の他に、「Skyblue」といった色の名前でも指定可能だ。コマンドラインで利用可能な色名を表示させるには、以下のようにする。

magick.exe -list color

利用可能な色名を表示させるコマンド

magick.exe -list colorの実行例 magick.exe -list colorの実行例
「-list color」オプションの指定で、コマンドライン中で利用できる色名やRGB値を表示できる。

 どのようなものをリストさせることが可能なのかは「-list list」で確認できる。

 ヘルプやWebサイトのドキュメントで注意することは、もともとUNIX系のアプリケーションとして開発されているため、一部の機能はWindows OSでは動作せず、X11 Window Systemでしか動作しない点に注意したい。

ImageMagickの特徴の一つ「デレゲート」とは

 ImageMagickのコマンドラインを理解する一つのポイントは「デレゲート(delegate、委譲)」だ。デレゲートとは、ImageMagickが画像形式を変換する場合などに使う仕組みだが、同じ機構を使って、組み込み画像や組み込みパターン、外部プログラムの起動などに利用できる。

 コマンドライン中のパラメーター(オプションでないもの)のうち、単語末尾に「:」が付いているものがデレゲートだ。例えば、ImageMagickは組み込み画像として「rose:」や「logo:」といったものがある。動作サンプルなどを示す場合に、特に画像を用意することなく利用できる。

 例えば、画像の一部を切り取る-cropオプションを解説する場合、以下のようにする。

magick logo: show:
magick logo: -crop 100x100+270+190 show:

画像の一部を切り取る-cropオプションを解説する際のコマンド

 「logo:」は、組み込みのロゴ画像で魔法使いの絵である。「show:」は、imdisplay.exeを起動するためのもので、どちらもデレゲートだ。

 ImageMagickは、ファイルの拡張子を見て、フォーマットを自動で判定している。しかし、標準入出力を使う場合、拡張子がなく、フォーマットを指定できない。このような場合にデレゲートを使って画像形式を指定できる。

magick logo: PNG:- | magick - -identify nul

デレゲートを使って画像形式を指定する方法

組み込み画像LOGOを標準出力に出力するコマンド 組み込み画像LOGOを標準出力に出力するコマンド
標準出力にPNG形式で組み込み画像LOGOを出力(magick logo: png:-)したもの。パイプの後半(magick - -identify nul)は、標準入力から画像ファイルを受け取り、ファイル形式などを判定させる機能。最後にnulを付けているのは、出力先ファイル指定が必須であるため、nulというダミーファイルを指定している。

 標準で利用できるデレゲートのうち、画像形式、組み込み画像、組み込みパターンについては、以下のURLに記述があるので参照してほしい。

 デレゲートには「組み込み」と「外部」があり、外部デレゲートは、ImageMagickのインストール先にある「delegates.xml」で定義されている他、ユーザーが環境変数などを指定して、別の場所にdelegates.xmlを配置することも可能だ。また、外部デレゲートに関しては、以下で表示させることもできる。

magick.exe -list delegate

外部デレゲートを表示するコマンド

 ただし、デレゲートの定義では、-list表示を抑制する「Stealth」指定が可能なので、全ての定義を見るには、xmlファイルを見る必要がある。

ImageMagickの応用例

 ここでは筆者がよく利用している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

Chocolateyを使ってGhostScriptをインストールするコマンド

 GhostScriptは、PostScriptの互換プログラムで、これを利用することでImageMagickはPDFファイルを扱えるようになる。

 PDFファイルの最初のページ(0ページ目)をサムネイル画像にするには、以下のようにする。

magick sample.pdf[0] -type TrueColorMatte -thumbnail x600 -background white -alpha remove thumb.png

PDFファイルの最初のページをサムネイル画像にするコマンド

 なお、「-type TuneColorMatte」は、PDFページがグレースケールで生成されていた場合にカラーに変換する機能だ。PDFページがカラーの場合には指定する必要がないのだが、グレースケールの場合には、これを指定しないと警告が表示される。

 また、さまざまな作業中にちょっとした画像ファイルが欲しくなることがある。ImageMagickを使うと、文字列をレンダリングして画像ファイルを作ることができる。

magick -font "Yu-Gothic-Light-&-Yu-Gothic-UI-Light" -size 100x100 -gravity center label:"日本語\nラベル" lbl.png

指定した文字列で画像ファイルを作るコマンド

ImageMagickで文字列をレンダリングした例 ImageMagickで文字列をレンダリングした例
Label:デレゲートでは、サイズ(-size)に合わせてポイントを自動判定してくれる。逆に文字のポイントサイズ(-pointsize)を指定して画像を作ることも可能だ。

 利用できるフォントは、「-list font」で調べることができる。

 駆け足で紹介したが、ImageMagickは、コマンドラインでほとんどの画像処理をこなせ、さらにはデレゲートによる機能拡張も可能だ。世の中にはGUI系の画像ユーティリティーは数多くあるが、たいていは起動に時間がかかり、起動しておくとメモリを占有する。

 しかし、ImageMagickは、コマンドラインプログラムであり、起動時の待ち時間はなく、処理が終わればメモリは解放される。使い方を覚えれば、これほど便利なコマンドはないと実感できる。インストールサイズは80MBほどと、今や気にするほどの容量でもない。インストールしておけば、イザというときに役立つだろう。

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。