scheme - 比较图像宽度与数量失败

标签 scheme gimp script-fu

此脚本在 if 语句处失败,并显示“错误:( : 1) >:参数 2 必须是:数字”,为什么?

(define x 1500)

(if(> x (gimp-image-width image))
(set! x (gimp-image-width image))
)

GIMP中使用的Scheme版本有什么好的引用吗?

最佳答案

当您在 script-fu 控制台中尝试时,gimp-image-width 返回一个列表而不是数字:

(gimp-image-width 1)
(400)

所以你必须提取列表的元素:

(define x 1500)
(if(> x (car (gimp-image-width 1)))
(set! x (gimp-image-width 1))
)

顺便说一句,如果您开始编写 Gimp 脚本,请使用 Python,这会容易得多:

width=min(1500,image.width)

关于scheme - 比较图像宽度与数量失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38679007/

相关文章:

linux - 如何从 PSD 文件中提取文本?

gimp - 如何在不更改字体的情况下更改 python-fu gimp 脚本中的文本?

debugging - 如何在方案中调试 gimp 的 script-fu 脚本?

lambda - 在Scheme中让-over-lambda?

if-statement - 方案:如果条件有多个程序

python - 如何使用PyCharm进行GIMP插件开发?

console - GIMP 批量编辑(Script-fu/Python-fu)

scheme - 有什么方法可以在 Typed Racket 中声明一个表示所有可调用过程(任何可调用过程)的类型?

recursion - Scheme 中的递归函数只返回列表中的第一项

python - 在 GIMP 中的路径上附加文本