Powershell and GDI 初心者ぶる

初心者ぶる、どころか、初心者である、無論。

ネタはなんでも良くて、とにかく .NET と仲良くしてる PowerShell のサンプルで「書き換えて遊ぶ」何かが欲しくて。

この質問を参考に。

以下の画像:
input
これに文字を入れるだけのサンプルということになるが、GDI+ を PowerShell から使う、という例ってことな。

ppp.ps1
 1 Add-Type -AssemblyName System.Drawing
 2 $filename ="output.png"
 3 $bmp = new-object System.Drawing.Bitmap 880, 350
 4 $graphics = [System.Drawing.Graphics]::FromImage($bmp)
 5 $font = new-object System.Drawing.Font Consolas, 24
 6 $brushBg = [System.Drawing.Brushes]::Blue
 7 $graphics.FillRectangle($brushBg, 0, 0, $bmp.Width, $bmp.Height)
 8 
 9 $Toinsert = New-Object System.Drawing.Bitmap "input.png"
10 $graphics.DrawImage($Toinsert, 10, 10)
11 
12 $font = new-object System.Drawing.Font SIMPLEX, 90
13 $brushFg = [System.Drawing.Brushes]::BLACK
14 $graphics.DrawString('糸色望した', $font, $brushFg, 5, 50)
15 $brushFg = [System.Drawing.Brushes]::RED
16 $graphics.DrawString('糸色望した', $font, $brushFg, 10, 55)
17 
18 $graphics.Dispose()
19 $bmp.Save($filename)
20 Invoke-Item $filename 

Windows らしいというか。Invoke-Item は、そうか、あれか。うーん名前出てこない、なんだっけ。ShellExecute か? ファイル名を渡すと「拡張子に応じて起動する」。ので、

(MSYS の bash から起動してますのよ)
1 me@host: ~$ /C/WINDOWS/SysWOW64/WindowsPowerShell/v1.0/powershell ./ppp.ps1

すると以下画像が「起動する」。
output

見かけとは裏腹に、アタシ的には「Add-Type -AssemblyName」が目的だったりした。無論「お絵かき」をお題に選んだのも、「やりたいこと」があるからなのだけれど、それはまぁ、いずれ。






動くサンプルで学べるWindows PowerShellコマンド&スクリプティングガイド[本/雑誌] / 五十嵐貴之/著

【送料無料】 Windows PowerShellクックブック / リー・ホームズ 【単行本】