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


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

  • Оригинальный скрипт необходимо было править, прописывая выходные размеры, вручную. Теперь это задается с клавиатуры, после запуска программы
  • Теперь название выходной папки можно изменить
  • Качество JPG теперь можно определять с клавиатуры. В оригинальном скрипте установлена неизменяемая величина 95

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

Введите полный путь к папке с изображениями:
/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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.