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

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

   

Программирование: не работает скрипт (script-fu)

ГлавнаяОтветы Программирование: не работает скрипт (script-fu)

Очень нужна помощь. Никогда не изучала языки программирования, да и склад ума, видимо, не технический. Сложно въехать... Сегодня накатала такой "скриптик", но он не доделан и не работает.
Никак не могу доделать его, мозгов не хватает.
Смысл скрипта создать поля:
- выцепить ширину и высоту открытой картинки
- определить меньшую сторону, значение меньшей стороны разделить на 25, округлить и умножить на 2
- полученное значение приплюсовать к старым ширине и высоте и создать слой с новыми значениями
- отцентровать слой с картинкой

1. Не могу понять, как из открытой картинки выцепить параметры высоты и ширины.
2. Что нужно вписать вместо "?" в первых двух строках?
3. Почему не получается вписать SF-Image и SF-Drawable в script-fu-registr (gimp начинает ругаться)?
4. Как потом отцентровать картинку?

(define (script-fu-border ?)
(let* ((img (car (gimp-drawable-get-image ?)))
(owidth (car (gimp-image-width img)))
(oheight (car (gimp-image-height img)))
(border (car (if (< oheight owidth) (* 2 (round (/ oheight 25))) (* 2 (round (/ owidth 25))) )))
(width (+ owidth border))
(height (+ height border))
(layer (car (gimp-layer-new img width height 0 “Border-Layer” 100 BEHIND-MODE))) )
(gimp-image-undo-group-start img)
(gimp-image-add-layer img layer 0)
(gimp-image-undo-group-end img) ))
(script-fu-register
“script-fu-border”
“script-fu-border”
“”
“”
“”
“”
“”
“RGB”)
(script-fu-menu-register
“script-fu-border”
“/Filters/My scripts”)

Используется: GIMP 2.6.

29 сентября 2011 0 Даша Аверкина

Метки: , .

4 ответа

0

Пользователь #5623Даша Аверкина30 сентября 2011 в 12:15#

Попробовала переписать скрипт.
Теперь выдает такую ошибку "Error: Invalid type for argument 2 to gimp-file-load ".
В чем смысл ошибки?

(define (script-fu-new filename)
(let*
(
(img (car (gimp-file-load 1 filename filename)))

(drawable (car (gimp-image-get-active-layer img)))

(owidth
(car (gimp-image-width img)))

(oheight
(car (gimp-image-height img)))

(border
(car
(if
(< oheight owidth) (* 2 (round (/ oheight 25))) (* 2 (round (/ owidth 25)))
)))
(width
(car (+ owidth border)))

(height
(car (+ oheight border)))

(layer
(car
(gimp-layer-new img width height 0 "Border-Layer" 100 BEHIND-MODE)))

)

(gimp-image-undo-group-start img)

(gimp-image-add-layer img layer 0)

(gimp-image-undo-group-end img)

))

(script-fu-register
"script-fu-new"
"Border"
"Create border"
"Dasha"
"Dasha"
"30.09.2011"
"RGB"
SF-IMAGE "" 0
SF-DRAWABLE "" 0
SF-FILENAME "File" "")
(script-fu-menu-register "script-fu-new" "<Image>/Filters/My scripts")

1

Пользователь #1Филипп Ткачёв1 октября 2011 в 10:04#

Неверный тип второго аргумент для функции gimp-file-load.

В принципе вам уже подсказали тут http://www.gimptalk.com/index.php?/topic/51116-need-help-with-script-script-fu/

2

Пользователь #1Филипп Ткачёв1 октября 2011 в 10:06#

Кстати, на гимп.ру вам уже его даже исправили http://gimp.ru/forum/viewthread.php?thread_id=138&getfile=688

0

Пользователь #5623Даша Аверкина2 октября 2011 в 16:56#

Спасибо )

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

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

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