1

我正在尝试使用 script-fu,试图自学如何使用它。我有以下基本脚本,我认为它会创建并显示一个新图像:

(define (script-fu-test)
  (let*
      (
       (image (car (gimp-image-new 10 10 RGB)))
       )
    (gimp-display-new image)
    (gimp-context-pop)
    )
  )

我这样调用脚本:

./gimp-2.8 -i -b '(script-fu-test)'

它失败了,就像这样:

batch command experienced an execution error:
Error: ( : 32662) Procedure execution of gimp-display-new failed 

有人暗示我可能在这里搞砸了什么吗?


我在 Mac OS X 上运行它(即 /Applications/Gimp.app/Contents/MacOS/gimp-2.8)

4

1 回答 1

4

当我尝试使用您的代码的简化版本时,我得到以下结果:

$ gimp -b '(gimp-display-new (car (gimp-image-new 10 10 RGB)))'
batch command executed successfully

$ gimp -i -b '(gimp-display-new (car (gimp-image-new 10 10 RGB)))'
batch command experienced an execution error

请注意,在第一种情况下,没有-i,因此用户界面是可用的。在第二种情况下,有一个-i,所以没有用户界面。gimp-display-new没有界面就无法使用。你不能gimp-display-new在无接口模式下使用也提到:

  • RE: 脚本无法连接到gimp-perl 邮件列表中的Perl 服务器

    确保使用以下行以批处理模式启动 gimp:

    gimp --no-interface --batch '(extension-perl-server 1 0 0)' &
    

    但这也意味着您不能执行 gimp-display-new,这对于调试非常有用。我在编写新的图像生成代码时使用交互式 gimp,然后在生产过程中使用 --no-interface。

  • Udo Schuermann 的“Linux LaTeX-PDF HOW-TO”,其中说:

    注意,命令中的第一个参数“1”是指该脚本将在非交互模式下运行。我已经注释掉了 (gimp-display-new img) 命令;如果您在交互模式下运行它,它不仅会提示您输入各种参数,还会生成一个图像窗口来显示结果。但是我们绝对不想在这个项目中为可见的东西和交互操作而烦恼。接下来我们去:”

于 2013-09-24T19:29:30.303 回答