3

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

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

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

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

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

> (number->string 3)

Error: eval: unbound variable: number->string

来自 R5RS 的其他标准程序运行良好:

> (string-append "frust" "rated")

"frustrated"

所以,

1) 除了搜索 GIMP 的源代码之类的激烈内容之外,是否有一些针对当前 GIMP 方案脚本的潜伏文档?

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

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

4

1 回答 1

5

您可以在 Scheme 中重新绑定变量和 monkeypatch 顶级标准库函数,但我认为您不能取消绑定顶级变量。也许有一些库文件没有正确加载。

我在 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?))

所以你可以运行该代码来重新绑定变量。或者你可以重新加载 script-fu.init

于 2010-03-21T03:27:17.930 回答