Кто часто обрабатывает фотографии для сайта, сталкиваются с проблемой рутинной работы по нарезке фото в графическом редакторе. Однако, есть более эффективное решение с помощью 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