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)
Другие вопросы по тегам