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

时间:2019-04-23 13:55:53

标签: .net powershell powershell-core paint.net

我需要使用Paint.Net打开图像文件,然后执行另存为。除了选择要另存为的文件类型外,最好设置图像DPI并将任何CMYK图像转换为RGB。我尝试使用PowerShell控制.NET程序的功能,而不是手动为数千个图像执行此操作,而是尝试使用PowerShell自动执行该过程。我想使用新的PowerShell Core完成此操作,但是如果需要,可以使用PS 5。我的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'

当我尝试创建对象时,出现以下错误: “新对象:找不到类型[PaintDotNet.Base.Bitmap]:验证是否已加载包含此类型的程序集。”但是,当我列出程序集时,会看到我的Paint.Net:

Name               Version           Culture   PublicKeyToken
PaintDotNet.Base   4.106.7016.38074  neutral   null

0 个答案:

没有答案