Для работы с изображениями я использовал библиотеку PIL. В Ubuntu эта библиотека предустановлена. В Windows нужно устанавливать самостоятельно. Я использую Python версии 2.7 под Windows. PIL для работы с Python 2.7 можно скачать с effbot.org.
Вот код сценария:
# Resize image # Command line: # python imgresize.py -d <directory> -p <percentage> import os, sys from PIL import Image directory_ = sys.argv[sys.argv.index("-d") + 1] percentage_ = int(sys.argv[sys.argv.index("-p") + 1]) filenames_ = os.listdir(directory_) for filename_ in filenames_[:]: path_ = directory_ + "\\" + filename_ if not os.path.isfile(path_): continue try: image_ = Image.open(path_) size_ = (image_.size[0] * percentage_ / 100, image_.size[1] * percentage_ / 100) if percentage_ < 100: image_ = image_.resize(size_, Image.ANTIALIAS) else: image_ = image_.resize(size_, Image.NEAREST) image_.save(directory_ + "\\r_" + filename_) print path_, "=>", "r_" + filename_, " OK " except: print path_, "\n", sys.exc_info() print "Finish"
Параметры командной строки описаны в начале сценария. Сценарий принимает два обязательных параметра: -d – путь, -p – новый размер изображения в процентах. Пример вызова:
python imgresize.py –d «C:\Photos» –p 50
В результате выполнения сценария в каталоге «C:\Photos» будут созданы файлы с именами начинающимися на «r_» и размером в два раза меньше исходных.
Спасибо, очень удобный скрипт, я его немного доработал и использую для автоматизации выгрузки и ресайза фотографий с цифрового фотоаппарата для последующей заливки в Интернет.
ОтветитьУдалитьРад что пригодилось. Подкидывайте идеи. :)
ОтветитьУдалитьИскала описание библиотеки, с помощью которой можно выполнить масштабирование, а нашла скрипт. Автор, спасибо, облегчил жизнь!
ОтветитьУдалить