このページの本文へ

前へ 1 2 次へ

Windows Info 第294回

テキストの入った画像を「ImageMagick」を用いてコマンドライン上で作る

2021年09月26日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

PowerShellから使うにはどうすればいい?

 次にPowerShellからコンピュータ名などを入れた背景画像を作ることにしよう。PowerShellからmagick.exeコマンドを起動する場合、オプションの一部がPowerShellに解釈されないように、一部をダブルクオートなどでくくる必要がある(これがPowerShellは面倒と見られる点だ)。

 前述のコマンドの場合、「srgb(61,64,116)」のカッコのところをPowerShellが評価してしまうため、ImageMagickがエラーになる。そのため、

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

とする必要がある。

 しかし、こうした機能があるため、PowerShellでは、exeコマンドの引数にPowerShellの変数や式を入れることが可能になる。たとえば、「Get-CimInstance Win32_ComputerSystem」では、該当のマシンのモデル名やメーカー名、そしてホスト名(コンピュータ名)を取得できる。また、「Get-CimInstance Win32_VideoController」で、画面解像度を知ることもできる。

 これらの情報を組み合わせることで、PCのメーカー名、モデル名、ホスト名が入った壁紙を自動で作成することが可能になる。記事冒頭の写真は、これで作成したものだ。

$cs=Get-CimInstance Win32_ComputerSystem;
$vs=Get-CimInstance Win32_VideoController;
magick convert -fill white -background "srgb(61,64,116)" -font "Arial" -pointsize 40 -gravity west label:"$($cs.Manufacturer)\n$($cs.Model)" -pointsize 288 -gravity west -font "Arial-Black" label:"$($cs.Name)" -append -gravity center -extent "$($vs.CurrentHorizontalResolution[0])x$($vs.CurrentVerticalResolution[0])" wall03.png

 このmagickコマンドでは2つのラベルに対して、個別にフォントやフォントサイズなどを指定している。ゆえに引数の順番には注意が必要だ。「label」よりも前に指定したフォントサイズがテキストの描画に有効となり、ここでは、フォントサイズなどを変えて2つの画像を生成し、最後に「-append」で縦に2つに並べている。上記のコマンドでは、フォントサイズを数値で指定しているため、画像の解像度にかかわらず文字のサイズは同じになるが、縦方向の解像度の1/4を指定するなどPowerShellで計算した値にすることも可能だ。

 マルチディスプレイ対策として、「$vs.CurrentHorizontalResolution[0]」のところで最初のモニターの解像度のみを取り出している点に注意されたい。

 これを壁紙に設定したり、スクリーンセーバーの「写真」で使えば、モニターを切り替えたり、仮想マシンを起動したときに、どのマシンなのかを簡単に判別できる。なお、スクリーンセーバーとして使う場合には、背景や文字色が違う画像や単色の画像を用意しておいたほうがいいかもしれない。単色の画像を作るには、

magick convert -size "$($vs.CurrentHorizontalResolution[0])x$($vs.CurrentVerticalResolution[0])" xc:black wall-black.png

とする。「xc:背景色」は、背景色からなる画像を生成するオプション。-sizeで大きさを指定している。

 使い方を覚えると、ImageMagickは、コマンドラインから画像を生成できるため、ちょっとした画像の作成で、ドローソフトを起動する必要がなくなる。また、コマンドで位置調整もできるのでドローソフトで文字をセンターに合わせるなんてことも手作業でする必要もない。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン