首页 > 解决方案 > 如何在方案中为 gimp 调试 script-fu 脚本?

问题描述

我尝试使用 script-fu 方案为 gimp 制作一些脚本。

当然,作为初学者,有很多错误和误解。

现在我正在寻找一种调试这些脚本的方法。

我找到了(gimp-message),但结果没有出现。我不知道是否有可能将调试消息打印到我可以检查它们的任何地方。

生成充满文本的新图像可能会起作用 ;-) 但看起来有点矫枉过正。

有哪些方法可以在 gimp 中调试脚本?

标签: debuggingschemegimpscript-fu

解决方案


可能有更好的方法,但是,我这样做的方法是:

  1. 打开脚本 fu 控制台(过滤器 -> 脚本 Fu -> 控制台)
  2. 编辑文件(例如:/Users/jamesanderson/code/scheme/gimp/learn1.scm
  3. 类型:(加载“/Users/jamesanderson/code/scheme/gimp/learn1.scm”)进入控制台
  4. 点击进入
  5. 编辑文件以进行更改
  6. 键盘向上箭头(无需键入即可再次获取加载函数调用)
  7. 点击进入

在此处输入图像描述

在此处输入图像描述

请注意,这是我基于评论的答案的扩展。当超出上述简单的概念证明脚本时,重要的是要知道该控制台在调用之间保留状态。例如,如果我们运行这个方案脚本:

(define jea-test-img-id nil)

(define (jea-find-test-img)
  (car (gimp-image-list)))

然后转到控制台并键入:

jea-test-img-id

结果是:

> jea-test-img-id
()

这很好,脚本根据需要启动了变量,我们看到了结果。所以 var 在脚本中设置,控制台保留脚本的状态变化。现在让我们更改控制台中的状态:

(set! jea-test-img-id (jea-find-test-img))

我们调用了一个便利函数,它获取活动图像列表中的第一个图像 ID,并将其存储在我们之前声明的变量中(当时为 nil)。现在让我们再次检查这个问题:

jea-test-img-id

然后结果:

> jea-test-img-id
1

如此高的水平:当你在编写脚本时,创建工作变量来保存你想要处理的东西,比如图像、像素、宽度等,然后一点一点地让函数工作。最后,一旦你有了简短的片段,你就可以将它折叠成一个干净的函数。


推荐阅读