В Gimp script-fu как получить доступ к функциональности QuickMask? - PullRequest
0 голосов
/ 14 декабря 2011

В графическом интерфейсе Gimp QuickMask очень полезен для многих вещей, но эта функция не доступна напрямую через script-fu. В браузере процедур для меня не было очевидных эквивалентов.

В частности, введение (значение / серый) пикселей слоя в маску выделения - это основная вещь, которую мне нужно сделать. Я попытался использовать gimp-image-get-selection, чтобы получить номер идентификатора канала выбора, затем gimp-edit-paste в него, но следующая операция привязки вызвала сбой Gimp.

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Мой другой ответ содержит «теоретический» способ сделать это - однако ОП обнаружил ошибку в GIMP, начиная с версии 2.6.5, что может быть видно из комментариев к этому ответу.

У меня есть обходной путь для того, что ОП собирается сделать: вставить содержимое данного слоя изображения в выделение изображения.Как было указано, edit-copy -> edit-paste на выделенном объекте вызывает сбой программы.

Обходной путь - создать новый канал изображения с нужным содержимым, используя метод копирования и вставки, а затем использоватьgimp-selection-load, чтобы сделать выбор равным содержимому канала:

Функции, которые должны быть вызваны таким образом (я не буду вставлять код схемы, так как не разбираюсь во всех скобках - я сделалтесты с использованием консоли Python в GIMP):

>>> img = gimp.image_list()[0]
>>> ch = pdb.gimp_channel_new(img, img.width, img.height, "bla", 0, (0,0,0))
>>> ch
<gimp.Channel 'bla'>
>>> pdb.gimp_edit_copy(img.layers[0])
1
>>> pdb.gimp_image_add_channel(img, ch, 0)
>>> fl = pdb.gimp_edit_paste(ch, 0)
>    >> fl
<gimp.Layer 'Pasted Layer'>
>>> pdb.gimp_floating_sel_anchor(fl)
>>> pdb.gimp_selection_load(ch)
0 голосов
/ 14 декабря 2011

Использование QuickMask через пользовательский интерфейс в точности эквивалентно рисованию в Selection, трактуя выделение как нарисованный объект.

Итак, чтобы использовать эквивалент «быстрой маски» в script-fu, все, что нужно, - это извлечь Selection как отрисовываемый объект и передать его в качестве параметра вызовам, которые его изменят - И чтобы получить выбор, нужно просто вызвать «gimp-image-get-selection»

...