4

Я пытаюсь использовать GIMP, чтобы автоматизировать 3 действия после пользовательского выбора в текущем активном изображении -

  • Увеличить выбор на 2
  • Добавить границу к выделению (ширина 2, с заштрихованными краями)
  • Заполните весь выбор цветом # FF0000 (красный)

Я обнаружил Script-Fu Console и просмотрел команду (gimp-selection-grow image steps) , но теперь я немного застрял.

Под paramaters документация просто говорит

Изображение Изображение
шаги ШАГИ Шаги роста (в пикселях) (шаги> = 0)

Теперь steps довольно очевидны, но я застрял на image . Конечно, с действием, выполняемым для выбора, рост должен быть применен к активному выбору?

Я попытался оставить image как есть, в надежде, что GIMP поймет, что я хочу изменить растущий активный выбор, но я получил ошибку Ошибка: (: 1) eval: unbound variable: image

Кто-нибудь может помочь мне начать?

РЕДАКТИРОВАТЬ

Теперь я обнаружил учебник по добавлению скриптов в GIMP с использованием Python (http://www.exp-media.com/content/extending-gimp-python-python-fu-plugins-part-2), и у меня есть Мой сценарий зарегистрирован и, в некоторой степени, работает.

Пожалуйста, смотрите мой ответ ниже.

Тем не менее, остается одна проблема - я хотел бы сделать так, чтобы мой пункт меню был серым, пока выбор не сделан, в отличие от всегда видимым.

1 ответ1

1

С помощью этого урока я теперь смог создать плагин почти так, как мне бы хотелось.

#**
 # Import the relevant modules
 #*
from gimpfu import *


#**
 # Preform the main script function
 #*
def add_border_to_selection(image, drawable, grow_by, border_thickness, border_feather) :
    pdb.gimp_selection_grow(image, grow_by)
    pdb.gimp_selection_border(image, border_thickness)
    pdb.gimp_bucket_fill(drawable, 0, 0, 100, 15, TRUE, 0, 0)
    return


#**
 # Register the plugin
 #*
register(
    "djg-border-and-fill",
    "Border and Fill Selection",
    "This script adds first grows your selection, then adds a border, and finally fills the border in red.",
    "David Gard (DJG-Dev)",
    "GPL V2 License",
    "October 2014",
    "<Image>/Select/Border and Fill...",
    "*",
    [
      (PF_SPINNER, 'grow_by', 'Grow selection by (px)...', 2, (0,5,1)), 
      (PF_SPINNER, 'border_thickness', 'Border selection by (px)...', 2, (0,5,1)), 
      (PF_TOGGLE, 'border_feather', 'Feather border edges', TRUE)
    ],
    [],
    add_border_to_selection,
    )

main()

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .