【问题标题】:How to create bitmap via Powershell如何通过 Powershell 创建位图
【发布时间】:2012-09-18 20:46:36
【问题描述】:

我想学习使用 Powershell 创建/编辑图像。 请帮我创建位图图像,用某种颜色填充它,将某个像素的颜色设置为其他颜色并将图像保存到文件中。

编辑:我尝试了以下代码,但得到了一个黑色位图

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$bmp = New-Object System.Drawing.Bitmap(320, 240)

for ($i = 0; $i -lt 100; $i++)
{
   for ($j = 0; $j -lt 100; $j++)
   {
     $bmp.SetPixel($i, $j, 1000)
   }
}

$bmp.Save("f:\Temp\bmp.bmp")
ii f:\Temp\bmp.bmp

【问题讨论】:

    标签: .net image powershell bitmap system.drawing


    【解决方案1】:

    SetPixel 接受System.Drawing.Color 类型的最终参数。 Powershell 正在将整数 1000 转换为 Color 对象,这最终基本上是“黑色”:

    PS > [system.drawing.color] 1000
    
    R             : 0
    G             : 3
    B             : 232
    A             : 0       # A is "Alpha", aka opacity. A = 0 -> full transparent
    IsKnownColor  : False
    IsEmpty       : False
    IsNamedColor  : False
    IsSystemColor : False
    Name          : 3e8
    

    您可以传递与a known named color 对应的字符串(例如'Red'),也可以从[System.Drawing.Color]::FromArgb($r, $g, $b)[System.Drawing.Color]::FromArgb($a, $r, $g, $b) 创建自定义RGB 颜色,其中所有参数可以是0 到255(含)。请参阅文档 herehere

    for ($i = 0; $i -lt 100; $i++)
    {
       for ($j = 0; $j -lt 100; $j += 2)
       {
         $bmp.SetPixel($i, $j, 'Red')
         $bmp.SetPixel($i, $j + 1, [System.Drawing.Color]::FromArgb(0, 100, 200))
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 2019-10-24
      • 2020-07-14
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多