Как я уже упоминал в комментариях, вы можете сделать это без Python, просто в Терминале с ImageMagick , который включен в большинство Linux дистрибутивов и доступен для macOS и Windows .
Похоже, что вы хотите конвертировать несколько JPEG-файлов в ширину 3500 пикселей с качеством 40, верно?
Создайте тестовый каталог с примерно 100 JPEG-файлами в нем - КОПИЯ недрагоценных файлов, с которыми вы можете поиграть и поэкспериментировать. Эта команда должна преобразовать один единственный JPEG, поэтому попробуйте сначала:
magick input.jpg -quality 40 -resize 3500x result.jpg
Если это выглядит правильно, эта команда будет делать то же самое для всех файлов JPEG в текущем каталоге и сохранять результаты в подкаталоге с именем processed
:
mkdir processed
magick mogrify -path processed -resize 3500x -quality 40 *.jpg
Если это выглядит правильно, мы можем распараллелить это следующим образом ... дайте мне знать, как это происходит.
Вы также можете сделать это с помощью libvips
, Итак, для обработки одного изображения:
vipsthumbnail input.jpg -o result.jpg[Q=40] --size 3500x
И попробуйте это на всех 100 изображениях с помощью:
for f in *.jpg ; do
echo "Processing $f"
vipsthumbnail "$f" -o processed/"$f"[Q=40] --size 3500x
done
Если это быстрее, мы можем продолжить это параллельно.
Если вы используете macOS, вы можете установить ImageMagick и vips с homebrew :
brew install imagemagick
brew install vips