Как-то так:
$srcPath = ".\Pictures"
$shrinkBy = New-Object Drawing.Size 1, 1
foreach ($file in dir -r -inc *.jpg, *.jpeg, *.png, *.gif $srcPath) {
echo $file.FullName
$src = [Drawing.Image]::FromFile($file)
$dest = New-Object Drawing.Bitmap $src, ($src.Size - $shrinkBy)
$format = $src.RawFormat
$src.Dispose()
$dest.Save($file.FullName, $format)
}
Сохраняет изменения прямо в исходный файл (лень возиться с воссозданием структуры директорий), так что лучше работать с копией.
Перепаковка с дефолтными параметрами энкодера. Если нужны другие — можно повозиться с перегрузкой Save.
Для смены параметров интерполяции придется создавать Drawing.Graphics и рисовать туда.