Могу ли я автоматизировать действия Paint.net с помощью PowerShell? - PullRequest
0 голосов
/ 23 апреля 2019

Мне нужно открыть файл изображения с помощью Paint.Net, а затем выполнить команду «Сохранить как».Наряду с выбором типа файла для сохранения в качестве, было бы здорово установить DPI изображения и конвертировать любые изображения CMYK в RGB.Вместо того, чтобы делать это вручную для тысяч изображений, я пытаюсь автоматизировать процесс с помощью PowerShell, используя его способность контролировать программы .NET.Я хотел бы добиться этого с новым ядром PowerShell, но я согласен с необходимостью использовать 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
...