При попытке автоматизировать эффект освещения в GIMP с помощью python-fu моя функция выдает ошибку «неправильный тип параметра» - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь запустить этот конкретный бит кода на консоли Python в GIMP:

pdb.plug_in_lighting(1,img,all_layers[0],0,0,FALSE,FALSE,0,1,[255,255,255],0,0,0,-1,-1,1,0.20,2.15,0.50,0.50,18,0,FALSE,FALSE,FALSE)

, и я продолжаю получать сообщение «TypeError: неправильный тип параметра».

Вот списокиз параметров для плагина:

 pdb.plug_in_lighting.params
((0, 'run-mode', 'The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }'), (13, 'image', 'Input image'), (16, 'drawable', 'Input drawable'), (16, 'bumpdrawable', 'Bumpmap drawable (set to 0 if disabled)'), (16, 'envdrawable', 'Environmentmap drawable (set to 0 if disabled)'), (0, 'dobumpmap', 'Enable bumpmapping (TRUE/FALSE)'), (0, 'doenvmap', 'Enable envmapping (TRUE/FALSE)'), (0, 'bumpmaptype', 'Type of mapping (0=linear,1=log, 2=sinusoidal, 3=spherical)'), (0, 'lighttype', 'Type of lightsource (0=point,1=directional,3=spot,4=none)'), (10, 'lightcolor', 'Lightsource color (r,g,b)'), (3, 'lightposition-x', 'Lightsource position (x,y,z)'), (3, 'lightposition-y', 'Lightsource position (x,y,z)'), (3, 'lightposition-z', 'Lightsource position (x,y,z)'), (3, 'lightdirection-x', 'Lightsource direction [x,y,z]'), (3, 'lightdirection-y', 'Lightsource direction [x,y,z]'), (3, 'lightdirection-z', 'Lightsource direction [x,y,z]'), (3, 'ambient-intensity', 'Material ambient intensity (0..1)'), (3, 'diffuse-intensity', 'Material diffuse intensity (0..1)'), (3, 'diffuse-reflectivity', 'Material diffuse reflectivity (0..1)'), (3, 'specular-reflectivity', 'Material specular reflectivity (0..1)'), (3, 'highlight', "Material highlight (0..->), note: it's exponential"), (0, 'antialiasing', 'Apply antialiasing (TRUE/FALSE)'), (0, 'newimage', 'Create a new image (TRUE/FALSE)'), (0, 'transparentbackground', 'Make background transparent (TRUE/FALSE)'))

Я просто не знаю, какой параметр неверен ...

Я надеюсь, что в конечном итоге итерация этой функции на нескольких уровнях для настройкиЭто немного каждый раз, чтобы создать внешний вид прожектора.

1 Ответ

1 голос
/ 12 июня 2019

Документ для API Python часто вводит в заблуждение, потому что это действительно документ для API Схемы. В частности, отсутствует позиционный параметр run-mode (если вы действительно настаиваете, вы можете использовать его в качестве именованного параметра), поэтому, исходя из вида вашего кода, вашим первым параметром должно быть изображение.

Обычно вы можете получить полезный шаблон для звонка следующим образом:

  • открыть консоль Python (Filters>Python-fu>Console)
  • нажмите кнопку "Обзор ..."
  • поиск вашего звонка (используйте панель поиска / фильтра в верхней части левой панели)
  • нажмите кнопку «Применить», чтобы скопировать шаблон для вызова в консоли Python
  • выполнить там (после редактирования пармов) или скопировать / вставить в ваш код в зависимости от ситуации.
...