我正在尝试为 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
and if
-else,但无论条件块内的任何语句都不会执行(即,如果我在if 中有相同的true 和false 语句,则两者都不会执行)。我的条件被完全忽略了,但我不知道为什么。GIMP 不报告任何语法错误。
我怀疑我不能在define
语句中使用条件,除非有一个可以在它下面工作。
任何人都可以看到有什么问题吗?为什么我的条件被忽略?