Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】Bitmapオブジェクトの画像を連結する

画像の連結機能を提供するメソッドはないため、連結後の大きさを持つ無地の画像を作成して、GraphicsクラスのDrawImageメソッドで、作成した画像にBitmapオブジェクトを貼ればよい。

以下は、大きさが320×240のBitmapオブジェクト(赤色(bitmap_combine1.png)と緑色(bitmap_combine2.png))をそれぞれ作成し、それとは別に大きさが640×480のBitmapオブジェクトを作成し、その赤色と緑色の画像を横方向につなげるようにずらして貼り付けて、ファイル(bitmap_combine3.png)に出力した例。

PS > Add-Type -AssemblyName System.Drawing
PS > $cdir = Get-Location
PS > [IO.Directory]::SetCurrentDirectory($cdir)
PS > $if = [Drawing.Imaging.ImageFormat]::Png
PS > $im1 = [Drawing.Bitmap]::New(320, 240)
PS > $im2 = [Drawing.Bitmap]::New(320, 240)
PS > $im3 = [Drawing.Bitmap]::New(640, 240)
PS > $g1 = [Drawing.Graphics]::FromImage($im1)
PS > $g2 = [Drawing.Graphics]::FromImage($im2)
PS > $g3 = [Drawing.Graphics]::FromImage($im3)
PS > $sb1 = [Drawing.SolidBrush]::New([Drawing.Color]::FromArgb(255, 0, 0))
PS > $sb2 = [Drawing.SolidBrush]::New([Drawing.Color]::FromArgb(0, 255, 0))
PS > $g1.FillRectangle($sb1, 0, 0, 320, 240)
PS > $g2.FillRectangle($sb2, 0, 0, 320, 240)
PS > $g3.DrawImage($im1, 0, 0)
PS > $g3.DrawImage($im2, 320, 0)
PS > $im1.Save("bitmap_combine1.png", $if)
PS > $im2.Save("bitmap_combine2.png", $if)
PS > $im3.Save("bitmap_combine3.png", $if)

bitmap_combine1.png

bitmap_combine2.png

bitmap_combine3.png

静的メソッドnewについては、以下のリンク先を参照のこと。
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_object_creation?view=powershell-7.5