2011-12-13 5 views
1

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

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

ответ

1

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

У меня есть обходное решение для того, что намеревается сделать O.P.: вставьте содержимое заданного слоя изображения в выбор изображения. Как указано, редактирование-копирование -> редактирование-вставка на выделенном выборе вызывает срабатывание программы.

Чтобы обойти эту проблему, чтобы создать новый канал изображения с требуемым содержимым, с помощью копирования и вставки метод, а затем использовать каркасную ВЫБОРА нагрузку, чтобы сделать выбор равняются содержимое канала:

Функции, которые необходимо называться таким образом (я не буду вставлять схемы код, так как я не специалист по всей скобкой - я сделал тесты с помощью консоли 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

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

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

+0

Как я намекал в этом вопросе, это не работает для меня. Используя GIMP 2.6.5, я делаю это в изображении в градациях серого: gimp-selection-all, gimp-image-get-selection, gimp-edit-copy [thelayer] и gimp-edit-paste [sel channel]. На данный момент вызов gimp-плавающего-sel-anchor приведет к сбою Gimp с ловушкой. Если вместо этого я просто закончу сценарий, графический интерфейс отобразит плавающий выбор, который нельзя поместить в слой (говорит, что прикреплен к каналу (OK)), ловушки GIMP, если они привязаны, и действуют очень странно, если что-либо еще пытается. – mgkrebbs

+0

Вот тестовый скрипт-fu для этого: http://pastebin.com/3uxjQWsN – mgkrebbs

+0

Не могли бы вы открыть ошибку для этого на bugzilla.gnome.org? Таким образом, все активные разработчики GIMP будут знать об этом. – jsbueno

 Смежные вопросы

  • Нет связанных вопросов^_^