複数のPCを1つのモニターに接続している、あるいは複数の仮想環境やエミュレーターなどを利用する場合、壁紙にホスト名などを入れてすぐに区別できるようにしたくなることがある。しかし、テキスト入りの画像ファイルを作るのに、いちいちドローソフトを起動するのも面倒だ。そんなときには、ImageMagickを使うとコマンドラインから簡単にテキストの入った画像ファイルを作ることができる。
30年以上前からある「ImageMagick」とは?
ImageMagickは1990年に最初にリリースされた、すでに30年以上の歴史を持つソフトウェアである。コマンドラインから画像の処理をするプログラムであり、GUIがなくても操作が可能だ。反面、大量のコマンドラインオプションがあり、とっつきにくい感じもある。とはいえ、すべてを理解する必要はなく、必要な部分だけわかれば十分だ。
古くからあるソフトウェアのため、インターネット内にもさまざまな情報があり、「ImageMagick ○○のやり方」などで検索が可能だ。なお、ImageMagickというと「セキュリティが……」と言い出す人が多いのだが、ウェブサーバ上で画像生成などに利用している場合の問題であり、ローカルでコマンドラインで使うぶんには特に問題ない。もちろんインターネット上に落ちていたスクリプトを確認もせずに実行させるなんて非常識なことをしなければ、の話ではあるが、それはどのプログラムでも同様に危険である。
ウェブサイトからダウンロードしてインストールすることも可能だが、wingetでインストールすることもできる。
●ImageMagick
https://imagemagick.org/index.php
wingetからのインストールについては、以前の記事(「Windowsで開発中のパッケージマネージャー「winget」がv0.3に」)を参考にしてほしい。
テキストの入った画像を作る
ImageMagickは、magick.exeコマンドに対してさまざまなサブコマンドとパラメーター指定を行って操作する。ImageMagickでテキストの入った画像を作るには、
magick convert label:"ASCII" test01.png
とする。なお、実行にはPowerShellではなく、cmd.exeのほうを使ってほしい(理由は後述)。出力画像形式は、最後の引数の拡張子から自動的に判断してくれる(この場合はpng)。ただ、これでは、すべてデフォルト値となるので、10ポイント程度の小さな文字にしかならない。まずは、文字色(-fill)、背景色(-background)、フォント(-font)、文字サイズ(-pointsize)を指定してみる。
magick convert -fill white -background srgb(61,64,116) -font "MS-Gothic-&-MS-UI-Gothic-&-MS-PGothic" -pointsize 600 label:"アスキー" test02.png
-fillと-backgroundでは色を指定する。色名は「magick -list color」で一覧が出る。また、「srgb(R,G,B)」としてRGBでも指定が可能。-fontでは、フォント名を指定するが、通常のWindowsのフォント指定とは違い、こちらも「magick -list font」で一覧が出る。一覧の「Font: 」で始まる行のフォント名を指定する。
-pointsizeで文字サイズをポイントで指定するが、ImageMagickは、デフォルトでは、72 dpiを想定しており、1ポイントは、1/72インチなので、指定した数値がほぼ、そのままドット数になる。ちなみに「ドット数=ポイント数/72*DPI値」である。正確にいうと、この-pointsizeが指定するのは、文字を描画する領域の高さであり、フォントや他のパラメーター指定によっては、文字の大きさは変わってくるのだが、おおまかには、「-pointsize 100」とすれば、高さ100ドットで文字が描画されると考えていてほぼ間違いがない。
これが基本ではあるが、壁紙として使う場合には、できあがり画像のサイズを指定する必要がある。また、文字は真ん中に書いてあるほうが便利だろう。この場合には、前記のコマンドに「-gravity center」、「-extent 1024x768」を追加する。
magick convert -fill white -background srgb(61,64,116) -font "MS-Gothic-&-MS-UI-Gothic-&-MS-PGothic" -pointsize 200 -gravity center -extent 1024x768 label:"アスキー" test03.png
このとき、「-gravity center」は、「Lable:」よりも前に指定する。ImageMagickは複雑なコマンドラインを持ち、1つのコマンドラインで複数の画像を生成することなどが可能なのだが、そのためにオプション指定の位置に影響を受ける。「Lable:」の位置で画像が作られるため、これをセンターに置く「-gravity center」は前に指定していなければならない。このあたりがImageMagickの難しいところなのだが、最初のうちは呪文と思って、指定された順番通りにオプションを入れるといいだろう。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ













