ПрограммированиеТворчество

Экономьте свое время и усилия, автоматизируя GIMP со скриптами

Экономьте свое время и усилия, автоматизируя GIMP со скриптами

Редактирование фотографий имеет тенденцию включать много повторяющихся процессов, особенно когда вы работаете с большим альбомом изображений. Если вы хотите побаловаться сценариями, вы можете использовать GIMP для автоматизации некоторых из этих действий, чтобы сэкономить время и силы.

Создание сценариев с помощью Python в GIMP нелегко, но очень полезно, если вы готовы изучать веревки. Вот как начать с пары очень простых скриптов.

Создание скрипта Python

Прежде чем мы начнем серьезно работать над нашим проектом, нам нужно заложить некоторые основы. Сначала откройте текстовый редактор, затем скопируйте и вставьте код ниже:

#!/usr/bin/python from gimpfu import * def first_plugin(timg, tdrawable): print "Hello, world!" register( "hello_world", "Presents a Hello, World! message", "Presents a Hello, World! message", "Brad Jones", "Brad Jones", "2017", "<Image>/Image/Hello, World!", "RGB*, GRAY*", [], [], first_plugin) main() 

Вот краткое изложение того, что там происходит. Первые две строки инициализируют скрипт и дают нам доступ к некоторым полезным библиотекам. Часть кода, следующая за def first_plugin, содержит инструкции, которые мы даем GIMP. Информация, которая следует за регистром слов, — это все, что GIMP должен знать о нашем плагине.

Это информация, которую мы должны предоставить GIMP для регистрации нашего скрипта:

  • Имя: название команды (например, hello_world )
  • Blurb: краткое описание команды (например, представляет сообщение Hello, World! )
  • Справка: отображаемое сообщение справки (например , сообщение Hello, World! )
  • Автор: человек, который создал сценарий (например, Брэд Джонс )
  • Авторское право: правообладатель (например, Брэд Джонс )
  • Дата: дата создания скрипта (например, 2017 )
  • Метка: способ ссылки на скрипт в меню (например, <Image> / Image / Hello, World! )
  • Параметры: параметры, подключенные к плагину (например, [] — в данном случае нет)
  • Результаты: результаты из плагина (например, [] — ни один в этом случае)
  • Функция: имя, используемое для обозначения действия в нашем коде (например, first_plugin )

Наконец, нам нужно вызвать main () .

Сохраните сценарий и выберите « Все файлы» в раскрывающемся списке « Тип файла». Не забудьте включить расширение .py в ваше имя файла.

сохранить скрипт

Затем поместите этот файл в папку подключаемого модуля GIMP, которую можно найти в Windows по адресу Program Files > GIMP 2 > lib > gimp > 2.0 (или ~ \ Library \ Application Support \ GIMP \ 2.8 \ scripts на Mac). Возможно, вам потребуются права администратора. чтобы сделать это.

Инициализируйте GIMP и откройте меню Image . Вы должны увидеть Привет, Мир! прямо там внизу.

привет привет мир

Теперь пришло время сделать наш скрипт немного более полезным.

Добавление некоторой функциональности

Теперь мы собираемся переписать наш скрипт так, чтобы он действительно делал что-то практичное. Снова откройте текстовый файл, скопируйте и вставьте следующий код:

 #!/usr/bin/env python from gimpfu import * def test_script(customtext, font, size): img = gimp.Image(1, 1, RGB) layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font) img.resize(layer.width, layer.height, 0, 0) gimp.Display(img) gimp.displays_flush() register( "python_test", "TEST", "TEST", "Brad Jones", "Brad Jones", "2017", "TEST", "", [ (PF_STRING, "customtext", "Text string", 'Scripting is handy!'), (PF_FONT, "font", "Font", "Sans"), (PF_SPINNER, "size", "Font size", 100, (1, 3000, 1)), ], [], test_script, menu="<Image>/File/Create") main() 

Это немного сложнее, чем наш Hello, World! сценарий, но он имеет очень похожую структуру. Сначала мы создаем изображение.

 img = gimp.Image(1, 1, RGB) 

Затем мы добавляем текст на основе параметров, предоставленных пользователем.

 layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font) 

Далее мы изменяем размер изображения в соответствии с размером текста.

 img.resize(layer.width, layer.height, 0, 0) 

Наконец, мы говорим GIMP отображать изображение на экране.

 gimp.Display(img) gimp.displays_flush() 

Осталось только добавить регистрационную информацию, которая нужна GIMP, с добавлением некоторых параметров, которые мы не включали ранее.

  [ (PF_STRING, "customtext", "Text string", 'Scripting is handy!'), (PF_FONT, "font", "Font", "Sans"), (PF_SPINNER, "size", "Font size", 100, (1, 3000, 1)), ], 

Сохраните это так же, как мы сохранили Hello, World! сценария, переместите его в папку с плагинами и перезапустите GIMP. Перейдите в File > Create > TEST, чтобы опробовать наш плагин.

тестовый плагин gimp

Вы увидите окно, где вы можете установить различные параметры.

параметры теста gimp плагин

Нажмите OK, и вы создадите изображение, которое выглядит примерно так.

тестовое изображение gimp плагин

Это демонстрирует, как вы можете использовать сценарии в GIMP для автоматизации процесса. состоящий из нескольких различных действий. Теперь давайте напишем скрипт, который вносит изменения в изображение, которое мы уже открыли.

Инвертирование слоя

Как только вы освоитесь со сценариями с помощью Python, в GIMP, вы можете автоматизировать все виды настроек ваших изображений. Тем не менее, мы собираемся начать как можно проще с реализации скрипта, который инвертирует цвета текущего слоя.

Для начала снова откройте текстовый редактор, затем скопируйте и вставьте следующий скрипт:

 #!/usr/bin/env python from gimpfu import * def invert_current_layer(img, layer): pdb.gimp_invert(layer) register( "python_fu_invert_current_layer", "Invert layer", "Invert colors in the current layer", "Brad Jones", "Brad Jones", "2017", "<Image>/Filters/Custom/Invert current layer", "*", [], [], invert_current_layer) main() 

Это следует из сценария, который мы создали ранее. Первые несколько строк кода заложили некоторые основы, а последние несколько строк заботятся о регистрации. Вот важный раздел:

 def invert_current_layer(img, layer): pdb.gimp_invert(layer) 

Мы определяем наш процесс, сообщаем GIMP, на какие компоненты мы будем ссылаться, а затем используем pdb.gimp_invert, чтобы дать программе команду настроить цвета. Сохраните его в формате .py, добавьте в папку плагинов и откройте GIMP, чтобы убедиться, что он работает.

инвертировать текущий слой GIMP плагин

Перейдите в « Фильтры» > « Пользовательский» > « Инвертировать текущий слой» .

инвертировать процесс GIMP плагин

Вы должны получить результат, аналогичный приведенному выше. Конечно, в GIMP уже довольно легко выполнить операцию инвертирования, но это только отправная точка. Самое замечательное в написании ваших собственных сценариев создание сценариев — это то, что вы можете создать что-то, что полностью вам подходит.

Следующие шаги в сценарии GIMP

Как только вы поймете основы скриптинга в GIMP, пришло время экспериментировать. Подумайте о том, какие процессы вы выполняете много, и это было бы полезно для автоматизации Затем наступает сложная часть: выяснить, как использовать код для реализации этих идей.

К счастью, GIMP может предложить некоторую помощь. Перейдите в « Справка»> «Обозреватель процедур», и вы получите доступ к списку всех процедур, которые вы можете использовать.

браузер процедур

Обозреватель процедур не только перечисляет сами процедуры, но и дает вам информацию о том, какие параметры вам нужно указать в своем коде.

Вы можете прокрутить весь список процедур или использовать панель поиска, чтобы сузить поле. Затем просто вставьте имя процедуры и параметры в ваш скрипт.

параметры

Эта информация будет неоценимой, когда вы работаете над своими сценариями. Начните с некоторых простых вещей, и, прежде чем вы это узнаете, вы сделаете несколько действительно полезных автоматизированных процессов!

Вам нужна помощь сценариев с GIMP? Или у вас есть совет, которым вы хотите поделиться с другими пользователями? В любом случае, почему бы не присоединиться к беседе в разделе комментариев ниже?

Кредиты изображений: Волкова Вера / Shutterstock

Похожие посты
Творчество

Добавьте комические речевые воздушные шары и текстовые пузыри к своим фотографиям

Творчество

Определение растрового и растрового изображения

Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт