Пакетное автоулучшение изображений GIMP

Есть папка с картинками (фото), несколько сотен.

Есть в GIMP такая штука, Цвет — Уровни — Авто. После этого картинка становится красивее.

Вопрос: как можно сделать это сразу для всех сотен картинок?
  • Вопрос задан
  • 4621 просмотр
Пригласить эксперта
Ответы на вопрос 3
В гимп встроены такие скриптовые языки как Scheme (Filters>Script-Fu>Console) и Python (Filters>Python-Fu>Console). Тк мне ближе Python, то расскажу о нем:
1) документация
2) можно открыть в самом гимпе консоль Filters>Python-Fu>Console и побаловаться с командами (особенно смотри кнопку Browse)
3) Небольшой пример использования скрипта: нужно было создать много однотипных маркеров из иконок, просто добавив иконку на фон:
import os

ORIGINAL_IMAGES_IN_PATH = '../img/icons'

MARKER_IMAGES_OUT_PATH = '../img/markers'
MARKER_TEMPLATE_PATH = '../css/img-base/marker-template.png'

script = '''
import os

images_in_path = '%(images_in_path)s'

markers_out_path = '%(markers_out_path)s'
marker_template_file = '%(marker_template_file)s'

image_extension = '.png'

image_filter = lambda file_name: file_name[-len(image_extension):] == image_extension


for root, dirs, files in os.walk(images_in_path):
    for file in filter(image_filter, files):
        input_path = os.path.join(root, file)
        output_path = os.path.join(markers_out_path, file)

        image = pdb.gimp_file_load(marker_template_file, 'template')
        layer = pdb.gimp_file_load_layer(image, input_path)
        image.add_layer(layer, 0)
        layer.scale(23, 23, 0)
        layer.set_offsets(7, 7)
        merged_layer = image.merge_visible_layers(0)
        pdb.file_png_save2(image, merged_layer, output_path, output_path, 0, 9, 0, 0, 0, 0, 0, 0, 0)


pdb.gimp_quit(0)
''' % {'images_in_path': os.path.abspath(ORIGINAL_IMAGES_IN_PATH),
       'markers_out_path': os.path.abspath(MARKER_IMAGES_OUT_PATH),
       'marker_template_file': os.path.abspath(MARKER_TEMPLATE_PATH),}

os.system("""gimp --no-interface --batch-interpreter python-fu-eval --batch "%s" """ % script)

4) похоже Вам нужна команда gimp-levels-stretch
Automatically modifies intensity levels in the specified drawable.
This procedure allows intensity levels in the specified drawable to be remapped according to a set of guessed parameters. It is equivalent to clicking the «Auto» button in the Levels tool. This procedure is only valid on RGB color and grayscale images. It will not operate on indexed drawables.
Ответ написан
Комментировать
@oleksandr_veles
Возможно Вам подойдёт -normalize из imagemagick, примерно как-то так:

for i in *.jpg; do convert -normalize $i res_`basename $i jpg`jpg; done
Ответ написан
Комментировать
Anonym
@Anonym
Программирую немного )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы