Fix Не удалось выполнить процедуру из-за ошибки недопустимых входных аргументов.

Я пытался написать сценарий script-fu для GIMP 2.6+, который использует один из встроенных методов script-fu, а именно метод script-fu-add-bevel. Моя проблема в том, что всякий раз, когда я это вызываю, либо в консоли, либо в моем скрипте, я получаю:

Error: Procedure execution of gimp-drawable-type-with-alpha failed on invalid input
arguments: Procedure 'gimp-drawable-type-with-alpha' has been called with an
invalid ID for argument 'drawable'. Most likely a plug-in is trying to work on a layer that
doesn't exist any longer. 

Это действительно странно, потому что я ясно вижу, вызывая gimp-image-get-active-drawable с моим идентификатором изображения в качестве параметра, что идентификатор слоя, который я передаю методу script-fu, существует. Сценарий вызывает ошибку при вызове gimp-drawable-type-with-alpha, но я могу вызвать этот метод с тем же идентификатором в консоли без ошибок. Как я могу решить эту проблему?


person Chase Sandmann    schedule 27.08.2015    source источник


Ответы (1)


Из этого сообщения на форуме я узнал, что при вызове script-fu, вы не должны передавать аргумент run-mode. Это делается за кулисами, и если вы передадите что-либо для этого значения, оно будет интерпретировано как второй аргумент! Это означает, что каждый аргумент, который вы отправляете, будет отключен на один параметр, и это только вопрос времени, когда сценарий выйдет из строя.

Таким образом, вызов script-fu-add-bevel из другого скрипта-фу будет выглядеть примерно так:

(script-fu-add-bevel img layer bevel-width FALSE FALSE)
person Chase Sandmann    schedule 27.08.2015