Запуск внешней программы из PowerShell замедляет ее - PullRequest
1 голос
/ 26 октября 2019

Я пытаюсь изменить размер больших изображений в папке с помощью mogrify :

mogrify -resize "10000x900>" *.jpg

Если запустить на cmd (Windows 10), он будет работать почти мгновеннона папке с 50 картинками. Однако мне нужен сценарий, чтобы сначала проверить, достаточно ли велико изображение, а затем выборочно изменить размер только больших изображений.

Этот сценарий PowerShell работает нормально, однако для каждого отдельного изображения требуется около 1-2 секунд. Почему это так, и как ускорить процесс?

$images = Get-ChildItem *.jpg
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
foreach ($img in $images) {
     $Image = [System.Drawing.Image]::FromFile($img)
     $imageHeight = $Image.Height
     $Image.Dispose() 

     if ($imageHeight -gt 900) {
          & mogrify -resize "10000x900>" $img
     }
 }
...