我需要使用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