.net - 如何通过 Powershell 创建位图

标签 .net image powershell bitmap system.drawing

我想学习使用 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

最佳答案

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

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) 创建自定义 RGB 颜色或 [System.Drawing.Color]::FromArgb($a, $r, $g, $b) ,其中所有参数可以是从 0 到 255(包括 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))
   }
}

关于.net - 如何通过 Powershell 创建位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12484758/

相关文章:

.net - Powershell:管道输入到通过调用运算符执行的命令

.net - 我应该引用哪个 Microsoft Word(和 Excel)互操作程序集或 DLL?

android - 在 android 上使用图像 Sprite

powershell - 以编程方式创建参数 block 时无法生成 ParameterSetMetadata

c# - 我可以在同一个项目中引用一个 dll 的两个版本而不将它们放入 GAC 中吗?

mysql - 将数据绑定(bind)到 GridView

html - 为什么图像不居中?

html - 如何根据html css上的屏幕分辨率调整图像大小

powershell - 术语 'Install-Module' 未被识别为 cmdlet 的名称

powershell - 在不使用Get-content的情况下将变量转换为字节