Пакетный ресайзинг изображений с помощью python на основе ImageMagick

Те, кто часто обрабатывает фотографии для сайта, сталкиваются с проблемой рутинной работы по нарезке фото в графическом редакторе. Однако, есть более эффективное решение с помощью python и графической библиотеки ImageMagick. Автор скрипта magick_py Dmitry Mazhartsev. Им была составлена программа пакетной обработки изображений (находящихся в одной директории). Причем программа работает с изображениями разной ориентации. Задача состояла в том, чтобы, вне зависимости от ориентации фотографии, на выходе получались изображения одинаковой ширины. Скачать оригинальный скрипт и документацию на русском языке можно на GitHub здесь. Мною внесены следующие изменения в данный скрипт:

  1. Оригинальный скрипт необходимо было править, прописывая выходные размеры, вручную. Теперь это задается с клавиатуры, после запуска программы
  2. Скрипт необходимо было класть в туже директорию с фотами. Теперь этого делать не нужно! Необходимо указать полный путь папки с фото, скопировав или введя его в консоли
  3. Теперь название выходной папки можно изменить
  4. Качество JPG теперь можно определять с клавиатуры. В оригинальном скрипте установлена неизменяемая величина 95.

Скачать измененный скрипт: magick.tar
Вывод измененной программы:

Введите полный путь к папке с изображениями:
/home/andrew/Документы/pic/
Введите название для папки обработанных изображений или нажмите на Enter 
для ввода имени папки по умолчанию (magick_out):

Качество (0-100): 85
Требуемая ширина в пикселях: 500
Требуемая высота в пикселях, если оставить пустым (т. е. нажать на Enter), 
то рассчет выcоты будет пропорциональным: 

Текущая директория /home/andrew/Документы/pic


Папка с обработанными файлами /home/andrew/Документы/pic/magick_out/ 

Файлы для обработки:
['DSC09578.JPG', 'DSC09566.JPG', 'DSC09544.JPG', 'DSC09552.JPG', 'DSC09547.JPG',
 'DSC09545.JPG', 'DSC09558.JPG', 'DSC09541.JPG', 'DSC09581.JPG', 'DSC09542.JPG',
 'DSC09567.JPG', 'DSC09548.JPG', 'DSC09549.JPG', 'DSC09562.JPG', 'DSC09580.JPG',
 'DSC09579.JPG', 'DSC09538.JPG', 'DSC09563.JPG', 'DSC09565.JPG', 'DSC09564.JPG', 
 'DSC09551.JPG', 'DSC09561.JPG', 'DSC09550.JPG']


Размер файла DSC09578.JPG
Ширина => 3264
Высота => 3264
Выполняется преобразование
1


Размер файла DSC09566.JPG
Ширина => 3264
Высота => 3264
Выполняется преобразование
2

... ... ...

Размер файла DSC09550.JPG
Ширина => 3264
Высота => 3264
Выполняется преобразование
23


Всего обработано - 23
Оставлено без изменений - 0
[]

Нажмите Enter


------------------
(program exited with code: 0)
Press return to continue

Добавить комментарий