Gimp python-fu: выделение двух слоев

Я хотел бы создать скрипт python-fu для gimp, в котором пользователь мог бы выбрать два слоя.

register(
(....)
    [
    (PF_IMAGE, "image", "Input image", None),
    (PF_DRAWABLE, "layermask", "MASK:", None),
    (PF_LAYER, "drawinglayer", "DRAWING:", None),
    (PF_INT, "treshold", "TRESHOLD:", 1)
    ],
(...)

всякий раз, когда я пробую это, моя форма содержит только один вариант (я полагаю, он использует слой по умолчанию?) < img src="https://i.stack.imgur.com/tn5uU.png" alt="введите здесь описание изображения">.

Как я могу получить два элемента управления «выбрать»? Я пытался изменить PF_DRAWABLE на PF_LAYER, но все равно получаю тот же результат.


person Pierre    schedule 02.05.2018    source источник


Ответы (1)


Вы выбираете два слоя, но один из них не отображается в автоматически сгенерированном диалоговом окне, поскольку предполагается, что он является активным слоем (*): аргумент PF_DRAWABLE после PF_IMAGE неявно является текущим активным слоем (или активным каналом), когда скрипт/плагин называется.

Другими словами, ваш сценарий работает не с двумя случайными слоями, а с активным слоем и другим случайным слоем (что обычно является хорошей идеей с точки зрения пользовательского интерфейса, особенно если ваш сценарий изменяет только один из двух).

(*) В некоторых случаях (Фильтры>Показать заново...) автоматически сгенерированный диалог может отображать селектор для этого слоя и, таким образом, показывать вам два ожидаемых селектора слоев.

person xenoid    schedule 03.05.2018