Gimp Python-фу, как выбрать многоугольник?
проблема
Мне нужно сделать многоугольную выборку на изображении сотни раз. Чтобы помочь, я пытался использовать консоль python для создания скрипта, который будет делать это рассчитанным образом (область одинакового размера, сотни разных начальных точек). Я использую GIMP 2.8.18 на компьютере с Windows 10.
Проблема в том, что функция pdb.gimp_image_select_polygon, похоже, не функционирует.
Код
Вот то, что я пытаюсь сделать в консоли Python:
theImage = gimp.image_list()[0]
OP_ADD = 0
POINT_COUNT = 5
x = 0
y = 0
points = [0.0 for i in range(0,10)]
points[0] = 64.0 + (128.0 * x)
points[1] = 64.0 * y
points[2] = 128.0 * x
points[3] = 32.0 + (64.0 * y)
points[4] = 64.0 + (128.0 * x)
points[5] = 64.0 + (64.0 * y)
points[6] = 128.0 + (128.0 * x)
points[7] = 32.0 + (64.0 * y)
points[8] = 64.0 + (128.0 * x)
points[9] = 64.0 * y
pdb.gimp_image_select_polygon(theImage, OP_ADD, POINT_COUNT, points)
Когда это работает, ничего не происходит. OTOH, если я использую другую функцию выбора, я получаю выбор:
pdb.gimp_image_select_rectangle(theImage, 0, 64 ,0 ,128 ,32)
Я не получаю ошибок трассировки при использовании gimp_image_select_polygon, поэтому я знаю, что у меня правильное количество параметров и правильные типы параметров. Я пробовал разные вещи и не могу найти много помощи онлайн.
Кто-нибудь видит проблему с моим кодом, или движок Python в GIMP полностью fubar?
1 ответ
Аргумент длины - это количество координат, а не количество точек (поэтому, как правило, двойная)
OP_REPLACE
не определено в моей версии.
Для квадрата 100x100 при (100,100):
p=[100,100,100,200,200,200,200,100]
pdb.gimp_image_select_polygon(image, CHANNEL_OP_REPLACE,len(p),p)