Я пытаюсь написать сценарий схемы для GIMP 2.8, который будет изменять размер и переименовывать/копировать файлы. В рамках этого я хотел бы изменить имя выходного файла на основе логического набора в сценарии.
Однако мой условный оператор игнорируется. Вот отрывок из сценария (на основе одного из эта тема):
(define (script-fu-batch-resize globexp globext src)
(define (resize-img n f newx suffix srcdir removetailingunderscore)
(let* ((fname (car f))
;get path, short name + extension (remember to remove source dir to REPLACE with suffix!)
(fullname (car (last (strbreakup fname "\\"))))
(filepath (substring fname 0 (- (string-length fname) (string-length (string-append srcdir fullname)))))
(name0 (car (strbreakup fullname ".")))
(name1 (substring name0 0 (- (string-length name0) 1)) )
(when
(> 1 0)
(
(name0 (name1) )
)
)
(extension (cadr (strbreakup fullname ".")))
(img (car (gimp-file-load 1 fname fname))))
(gimp-image-undo-disable img)
(let*
(
(oldx (car (gimp-image-width img)))
(oldy (car (gimp-image-height img)))
(newy (/ oldy (/ oldx newx)))
)
(gimp-image-scale img newx newy) ;changed for Gimp v2.6
)
(gimp-file-save 1 img (car (gimp-image-get-active-drawable img)) (string-append filepath suffix "\\" name1 "." extension) fname)
(gimp-image-delete img)
)
(if (= n 1) 1 (resize-img (- n 1) (cdr f) newx suffix srcdir removetailingunderscore))
)
(define sourcepattern (string-append globexp src globext))
(define files (file-glob sourcepattern 0)) ;changed for Gimp v2.6
(resize-img (car files) (car (cdr files)) 55 "micro" src 1)
)
Я пытался использовать when
и if
-else, но независимо от того, что ни один оператор внутри условного блока не выполняется (т.е. если бы у меня было одно и то же утверждение для истинного и ложного в if, ни один из них не был бы выполнен). Мое условие полностью игнорируется, но я не знаю, почему. GIMP не сообщает о каких-либо синтаксических ошибках.
Я подозреваю, что у меня не может быть условного оператора внутри оператора define
, за исключением того, что он работает прямо под ним.
Кто-нибудь может увидеть, что не так? Почему мое условие игнорируется?