вход или регистрация

GIMP — The GNU Image Manipulation Program
Гимп — бесплатный графический редактор

   

Функция и замена DRAWABLE в языках Python-Fu и Script-Fu

ГлавнаяОтветы Функция и замена DRAWABLE в языках Python-Fu и Script-Fu

Когда пытаюсь выполнить процедуру в языках, то там есть параметр DRAWABLE, который я не могу ни в Script-Fu, ни в Python-Fu заменить на правильное значение.
к примеру функция gimp-brightness-contrast
Script-Fu: (gimp-brightness-contrast drawable brightness contrast)
Ошибка при (gimp-brightness-contrast 1 0 20) 1 - drawable
> (gimp-brightness-contrast 1 0 20)
Error: Procedure execution of gimp-brightness-contrast failed on invalid input arguments: Процедура 'gimp-brightness-contrast' вызвана с некорректным идентификатором для аргумента 'drawable'. Скорее всего, модуль пытается работать со слоем, который уже не существует.


Python-Fu: pdb.gimp_brightness_contrast(drawable, brightness, contrast)
Ошибка при pdb.gimp_brightness_contrast(1, 0, 20) 1 - drawable
Traceback (most recent call last):
File "", line 1, in
TypeError: wrong parameter type

Используется: Windows XP, 2.6.11.

13 апреля 2011 1 Сергей Диденко

Метки: , .

12 ответов

-1

Пользователь #1730Дмитрий Белякин14 апреля 2011 в 12:23#

Открой какое-нибудь изображение, или создай какой-нибудь слой и попробуй снова. Гимп 2.6.7 полет нормальный

0

Пользователь #2857Сергей Диденко14 апреля 2011 в 18:58#

GRAYSCALE[69]
1. Я бы писал, если б я такое не пробовал?
2. А какое значение всё-таки надо

0

Пользователь #1730Дмитрий Белякин14 апреля 2011 в 19:55#То, что нужно!

1. А кто тебя знает О_о
2. У меня (gimp-brightness-contrast 1 0 20) ошибок не вызывает. правда, и эффекта тоже. просто открывается менюшка "яркость/контраст". Все.
Насколько я понимаю, этот аргумент функции(DRAWABLE) отвечает за то, к какому холсту/слою применять Яркость-контраст?

0

Пользователь #1730Дмитрий Белякин14 апреля 2011 в 20:01#

Таак, теперь и у меня не работает)

0

Пользователь #1730Дмитрий Белякин14 апреля 2011 в 20:17#

Вот смотри:
Захожу в ГИМП
Создать
Рисую кистью
В консоли задаю (gimp-brightness-contrast 2 90 20)
Все работает как надо, яркость и контраст изменяется

0

Пользователь #1730Дмитрий Белякин14 апреля 2011 в 20:20#

Потом закрыл свой шедевр, открыл картинку, вписал
(gimp-brightness-contrast 3 90 20), все работает

1

Пользователь #1Филипп Ткачёв15 апреля 2011 в 09:29#

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

# открываем изображение
tmpimg = pdb.file_jpeg_load(filename, filename)
# получаем активный слой, как я понимаю если это JPEG, то он там один
tmplayer = pdb.gimp_image_get_active_layer(tmpimg)
# применяем параметры яркости и контраста
pdb.gimp_brightness_contrast(tmplayer, 97, 127)

0

Пользователь #2857Сергей Диденко15 апреля 2011 в 13:23#

GRAYSCALE[69]
у меня вообще из всего, что написано не работает
Вот 2 примера.

> (gimp-brightness-contrast 2 90 20)
Error: Procedure execution of gimp-brightness-contrast failed on invalid input arguments: Процедура 'gimp-brightness-contrast' вызвана с некорректным идентификатором для аргумента 'drawable'. Скорее всего, модуль пытается работать со слоем, который уже не существует.

> (gimp-brightness-contrast 1 90 20)
Error: Procedure execution of gimp-brightness-contrast failed on invalid input arguments: Процедура 'gimp-brightness-contrast' вызвана с некорректным идентификатором для аргумента 'drawable'. Скорее всего, модуль пытается работать со слоем, который уже не существует.

Всё сделал по
Вот смотри:
Захожу в ГИМП
Создать
Рисую кистью
В консоли задаю (gimp-brightness-contrast 2 90 20)
Все работает как надо, яркость и контраст изменяется

0

Пользователь #2857Сергей Диденко15 апреля 2011 в 13:28#

Филипп
# открываем изображение
tmpimg = pdb.file_jpeg_load(filename, filename)
# получаем активный слой, как я понимаю если это JPEG, то он там один
tmplayer = pdb.gimp_image_get_active_layer(tmpimg)
# применяем параметры яркости и контраста
pdb.gimp_brightness_contrast(tmplayer, 97, 127)
1. почему 2 filename?
2. tmpigm значение 1?
3. tmplayer значение 1?

0

Пользователь #2857Сергей Диденко15 апреля 2011 в 14:34#

разобрался

0

Пользователь #1Филипп Ткачёв15 апреля 2011 в 23:32#

1. поэтому http://oldhome.schmorp.de/marc/pdb/file_jpeg_load.html
2. не знаю
3. не знаю

Я с Python никогда не работал. Но исходя из опыта программирования понимаю, что внутрь функций передаются указатели на объекты (или что там в Python?), c которыми они далее взаимодействуют.

Я надеюсь, что следующая дока будет полезна разработчиками скриптов для Гимпа http://oldhome.schmorp.de/marc/pdb/index.html

Чтобы участвовать в обсуждении вы должны войти или зарегистрироваться.

Информация по вопросу

Задать вопрос
13865+0
Комментариев