scripting - GIMP 方案脚本中的数字-> 字符串和相关过程

标签 scripting scheme gimp script-fu

我对 GIMP 脚本中的字符串到数字和数字到字符串的转换感到沮丧。我在 Windows Vista 中运行 GIMP 2.6.8。

我知道 GIMP 的内部 Scheme 实现随版本而变化,我似乎无法确定文档。据我所知,GIMP 的 Scheme 是 TinyScheme 的一个子集和/或支持 R5RS 标准程序。无论如何,当我想尝试一些新东西时,我通常只是在打包的脚本目录中查看示例,因为那应该肯定有效,对吧?

例如,grid-system.scm 随附最新的 GIMP 版本并具有表达式,

(string-append (number->string obj) " ")

这正是我想要的。但是,如果我在我自己的脚本中使用 number->string,或者甚至将它输入 GIMP 的脚本控制台(这是我通常测试我想做的新东西的方式),它会告诉我 number->string 是一个未绑定(bind)的变量:

> (number->string 3)

错误:eval:未绑定(bind)变量:number->string

其他标准程序,比如 R5RS,工作得很好:

>(字符串追加“frust”“rated”)

“沮丧”

所以,

1) 除了像搜索 GIMP 的源代码这样的激烈的事情之外,是否有一些针对当前 GIMP Scheme 脚本的隐藏文档?

2) 我可以使用 GIMP 控制台吐出所有已定义过程的列表来找到我需要的东西吗?

3) 还有人确认 number->string 没有为当前的 Windows 版本定义,即使它出现在打包的脚本中?我的网络搜索没有发现任何相关问题,并且完全卸载所有 GIMP 版本,回到最新版本让我陷入同样的​​困境。

最佳答案

你可以在 Scheme 中重新绑定(bind)变量和 monkeypatch 顶级标准库函数,但我认为你不能解除绑定(bind)顶级变量。可能有一些库文件没有正确加载。

我在 OS X 上的 GIMP 2.6.8 中的 TinyScheme 可以很好地执行 number->string。

number->string 在share/gimp/2.0/scripts/script-fu.init 中定义为

(define (number->string n) (anyatom->string n number?))

因此您只需运行该代码即可重新绑定(bind)变量。或者你可以重新加载 script-fu.init

关于scripting - GIMP 方案脚本中的数字-> 字符串和相关过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485575/

相关文章:

lambda - 在 Scheme 中消除 lambda?

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

.net - 如何从 “client” PowerShell脚本获取回显工作?

bash - 如何使用 Bash 抑制命令的所有输出?

windows - 如何创建一个批处理脚本,在达到文件夹大小限制时删除最旧的文件

html - 创建一个免费的选择图像 map

linux - 使用 Scheme for GIMP 编写矩阵转换

scripting - 24小时内最容易学习的脚本语言?

list - 如何对结构列表中的数字求和? ( Racket )

scheme - Scheme 中的 car 和 cdr 快把我逼疯了