Я использую python-fu gimp.pdb.gimp_paintbrush_default (слой, 2, [10,10, 20,20]), но независимо от того, сколько штрихов я им говорю, чтобы рисовать, он только когда-либо рисует первый (x , y) (в этом случае (10,10)). Ожидает ли он другой формат? Документация для функции не для плагина Python, а просто говорит, что третий параметр ожидает переменную типа FLOATARRAY. Я предполагаю, что версия Python использует список здесь, но, похоже, она не смотрит вперед ни на какие значения после первых двух. Как я могу заставить его рисовать несколько контрольных точек?Как вы рисуете штрих в Gimp с Python-fu?
1
A
ответ
1
Второй параметр, который вы передаете - в этом случае «2» указывает GIMP длину списка в следующем параметре - хотя при кодировании в Python мы используем, что вызываемая функция не имеет проблем с поиском длина списка, эти вызовы в сценариях GIMP Python представляют собой сопоставление 1: 1 API GIMP для нескольких других языков и написаны на C.
В C нет возможности узнать длину массив передан, если он явно не передан, поэтому существует необходимость в этом параметре.
Попробуйте делать это вместо:
points = [10,10, 20,20]
pdb.gimp_paintbrush_default(layer, len(points), points)
Ах, имеет смысл ... отлично! Он работает отлично. Спасибо =) – derefed