Как вы рисуете инсульт в Gimp с Python-fu? - PullRequest
1 голос
/ 07 марта 2012

Я использую Python-fu's gimp.pdb.gimp_paintbrush_default (layer, 2, [10,10, 20,20]), но независимо от того, сколько ударов я скажу нарисовать, он рисует только первый х, у) (в данном случае (10,10)). Ожидается ли другой формат? Документация для функции не относится к плагину Python и просто говорит, что третий параметр ожидает переменную типа FLOATARRAY. Я предполагаю, что версия Python использует здесь список, но, похоже, он не смотрит вперед ни на какие значения после первых двух. Как заставить его рисовать более одной контрольной точки?

1 Ответ

1 голос
/ 07 марта 2012

Второй передаваемый параметр - в этом случае «2» указывает GIMP длину списка в следующем параметре - хотя при кодировании в Python мы используем, чтобы у вызываемой функции не было проблем с поиском длиныиз списка, эти вызовы в сценариях GIMP Python являются отображением 1: 1 в GIMP API для нескольких других языков и написаны на C.

В C нет способа узнать длинумассив передан, если он явно не передан, поэтому этот параметр необходим.

Попробуйте сделать это вместо:

points =  [10,10, 20,20]
pdb.gimp_paintbrush_default(layer, len(points), points)
...