別の回答から引用した素敵なPowerShellコードがいくつかありますが、ブロックにグラデーションで塗りつぶされた端を追加できるようにしたいと思います:
Add-Type -AssemblyName System.Drawing
$bmp = new-object System.Drawing.Bitmap 208,61
$brushBg = [System.Drawing.Brushes]::Blue
# replace this line...
$brushGr = [System.Drawing.Brushes]::Yellow
$graphics = [System.Drawing.Graphics]::FromImage($bmp)
$graphics.FillRectangle($brushBg,0,0,$bmp.Width,$bmp.Height)
$graphics.FillRectangle($brushGr ,$bmp.Width-50,0,50,$bmp.Height)
$graphics.Dispose()
$bmp.Save($filename)
C# および VB の MSDN ドキュメントを PowerShell の同等物に変換する方法がわからないため、Google はこれまでのところ私の友人ではありません。置換行の私の推測は次のようなものです:
# ... with these lines
$col1 = new-object System.Drawing.Color.FromRgb( 209, 227, 250)
$col2 = new-object System.Drawing.Color.FromRgb(170, 199, 238)
$pt1 = new-object System.Drawing.Point(0.5, 0)
$pt2 = new-object System.Drawing.Point(0.5, 1)
$brushGr = new-object System.Drawing.LinearGradientBrush( $col1 , $col2, $pt1, $pt2)
どんな助けでも大歓迎です。
以下のDharmatechからの素晴らしい回答のおかげで、それが他の誰かに役立つ場合に備えて、マーキングバーを描画するための作業コードを次に示します( に保存しMYFILENAME.ps1
、 を使用して実行しますpowershell -ExecutionPolicy Bypass -file MYFILENAME.ps1
)
Add-Type -AssemblyName System.Drawing
$filename ="$env:userprofile\Desktop\px95.png"
$bitmap = New-Object System.Drawing.Bitmap 95,19
$barBlendWidth = 20
$start = $bitmap.Width - $barBlendWidth
$mid = $bitmap.Width - ( 0 + $barBlendWidth / 2 )
$p0 = New-Object System.Drawing.Point($start, 10 )
$p1 = New-Object System.Drawing.Point($mid, 10 )
$p2 = New-Object System.Drawing.Point($bitmap.Width, 10 )
$fromColour = [System.Drawing.Color]::FromArgb(255, 144, 238, 144)
$midColour = [System.Drawing.Color]::FromArgb(255, 255, 255, 255)
$toColour = [System.Drawing.Color]::FromArgb(255, 255, 255, 70)
$brushBG = [System.Drawing.Brushes]::LightGreen
$brush1 = New-Object System.Drawing.Drawing2D.LinearGradientBrush($p0, $p1, $fromColour, $midColour)
$brush2 = New-Object System.Drawing.Drawing2D.LinearGradientBrush($p1 , $p2, $midColour, $toColour)
$graphics = [System.Drawing.Graphics]::FromImage($bitmap)
$graphics.FillRectangle($brushBG, 0, 0, $bitmap.Width, $bitmap.Height)
$graphics.FillRectangle($brush1 , $start ,0,$barBlendWidth,$bitmap.Height)
$graphics.FillRectangle($brush2 , $mid ,0,$barBlendWidth,$bitmap.Height)
$bitmap.Save($filename)