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

标签 debugging scheme gimp script-fu

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

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

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

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

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

有哪些调试 gimp 脚本的方法?

最佳答案

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

  • 打开脚本fu控制台(过滤器->脚本fu->控制台)
  • 编辑文件(例如:/Users/jamesanderson/code/scheme/gimp/learn1.scm
  • 输入:(加载“/Users/jamesanderson/code/scheme/gimp/learn1.scm”)到控制台
  • 按回车
  • 编辑更改文件
  • 键盘向上箭头(无需键入即可再次调用加载函数)
  • 按回车

  • enter image description here

    enter image description here

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

    如此高级:当您在处理脚本时,创建工作变量来保存您想要处理的内容,例如图像、像素、宽度等,然后一点一点地让函数工作。最后,一旦您有了简短的代码片段,您就可以将其折叠为一个干净的函数。

    关于debugging - 如何在方案中调试 gimp 的 script-fu 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53031322/

    相关文章:

    xcode - 如何在Netbeans调试期间打印出变量的值?

    ios - AFNetworking 从错误端点获取响应 JSON

    algorithm - 方案 - 求从 -n 到 n 的分数之和

    scheme - 调用 cc 示例 Racket

    list - 如何在计划中不返回任何内容

    google-chrome - 您如何使用 Chrome 调试器协议(protocol)从时间戳导出挂墙时间?

    performance - 大量的调试日志会减慢我的 (grails) web 应用程序的速度吗?

    html - 在 GIMP 中自动将对象裁剪为最小尺寸/分辨率

    matlab - 什么插值最适合图像旋转?

    python - Gimp python 插件