我可以使用PowerShell自动执行Paint.net操作吗?

我可以使用PowerShell自动执行Paint.net操作吗?,.net,powershell,powershell-core,paint.net,.net,Powershell,Powershell Core,Paint.net,我需要用Paint.Net打开一个图像文件,然后执行另存为。除了选择要另存为的文件类型外,最好设置图像DPI并将任何CMYK图像转换为RGB。我尝试使用PowerShell,利用其控制.NET程序的能力,来自动完成这一过程,而不是手动处理数千个图像。我想用新的PowerShell内核来完成这一点,但如果有必要,我可以使用PS5。我的Paint.Net版本是4.1.6 我的研究让我相信我首先需要在PowerShell中加载程序集。我试图通过[Reflection.Assembly]的变体来实现这一

我需要用Paint.Net打开一个图像文件,然后执行另存为。除了选择要另存为的文件类型外,最好设置图像DPI并将任何CMYK图像转换为RGB。我尝试使用PowerShell,利用其控制.NET程序的能力,来自动完成这一过程,而不是手动处理数千个图像。我想用新的PowerShell内核来完成这一点,但如果有必要,我可以使用PS5。我的Paint.Net版本是4.1.6

我的研究让我相信我首先需要在PowerShell中加载程序集。我试图通过[Reflection.Assembly]的变体来实现这一点。代码运行成功,但我不确定是否正确,因为我似乎无法使用新加载的程序集创建新对象

下面是我用来加载程序集的两行示例代码:

[Reflection.Assembly]::LoadFile("C:\Program Files\paint.net\PaintDotNet.Base.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files\paint.net\PaintDotNet.Base.dll")
$tempImage = New-Object PaintDotNet.Base.Bitmap 'C:\Users\jf060898\Pictures\img1.jpg'
之后,我相信我需要使用我的新部件创建一个新对象:

[Reflection.Assembly]::LoadFile("C:\Program Files\paint.net\PaintDotNet.Base.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files\paint.net\PaintDotNet.Base.dll")
$tempImage = New-Object PaintDotNet.Base.Bitmap 'C:\Users\jf060898\Pictures\img1.jpg'
尝试创建对象时,出现以下错误: “新对象:找不到类型[PaintDotNet.Base.Bitmap]:请验证包含此类型的程序集是否已加载。”但是,当我列出程序集时,我会看到我的Paint.Net:

Name               Version           Culture   PublicKeyToken
PaintDotNet.Base   4.106.7016.38074  neutral   null

我在
PaintDotNet.Base
上看到的唯一公开成员是
AssemblyServices
。当你说公开成员时,你是指.dll文件中烘焙了哪些函数?我是指特定命名空间的公共成员。你能告诉我你是如何发现的吗?do
[PaintDotNet.Base.
并按CTRL+SPACE触发自动完成。我在
PaintDotNet.Base
上看到的唯一公开成员是
AssemblyServices
。当你说公开成员时,你是指.dll文件中烘焙了哪些函数吗?我是指特定命名空间的公共成员。你能告诉我你是如何发现的吗>[PaintDotNet.Base.并按CTRL+SPACE以触发自动完成。