Аппарат Nikon D90 приобрел еще в марте’11 (а к нему и фикс 35mm), за полгода всего три тысячи нащелкал. И вот на выходных выбрались с девушками пофотографироваться. Но какой же Ъ-фотограф обходится без постобработки фоточек в редакторе? Под катом скрипт пакетной обработки, простой и автоматический одновременно.
Итак, набросал простой скрипт, чтобы пакетно обработать получившиеся фотокарточки. Скрипт автоматически подправляет контраст и добавляет резкости. Чтобы скрипт работал, понадобятся Linux и Gimp 2.6 + Python-Fu (может, под другой всем-известной-платформой будет работать, не пробовал).
Итак, набросал простой скрипт, чтобы пакетно обработать получившиеся фотокарточки. Скрипт автоматически подправляет контраст и добавляет резкости. Чтобы скрипт работал, понадобятся Linux и Gimp 2.6 + Python-Fu (может, под другой всем-известной-платформой будет работать, не пробовал).
# coding=utf8
from os import walk
from gimpfu import pdb
def get_images(target_dir):
'''
Возвращает список картинок для обработки.
'''
all_files = walk(target_dir).next()[2]
images = filter(lambda file: file.endswith('JPG'), all_files)
images.sort()
return images
def convert_images(target_dir, output_dir, images):
'''
Обрабатывает картинки.
'''
count = len(images)
for i, image_name in zip(range(count), images):
print 'Converting %s (%s/%s)'%(image_name, i + 1, count)
image = pdb.file_jpeg_load('%s/%s'%(target_dir, image_name), image_name)
layer = image.layers[0]
# Чтобы попробовать исправить безнадежно испорченный баланс белого:
# pdb.gimp_levels_stretch(layer)
# Нерезкая маска - как по мне, так ниочинь:
# pdb.plug_in_unsharp_mask(image, layer, 5, 0.5, 0)
pdb.plug_in_c_astretch(image, layer)
pdb.plug_in_sharpen(image, layer, 50)
# Можно пережать картинки:
# pdb.file_jpeg_save(image, image.layers[0], '%s/%s'%(OUTPUT_DIR, image_name), image_name, 0.95, 0, 1, 0, '', 0, 0, 0, 0)
pdb.gimp_file_save(image, layer, '%s/%s'%(output_dir, image_name), image_name)
pdb.gimp_image_delete(image)
target_dir = '/path/to/photo/dir/'
print 'Converting images from %s'%target_dir
images = get_images(target_dir)
output_dir = '%s/converted/'%target_dir
convert_images(target_dir, output_dir, images)
И картиночки:
