我正在尝试使用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)
答案 0 :(得分: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: Script can't connect to Perl Server
确保使用以下行在批处理模式下启动gimp:
gimp --no-interface --batch '(extension-perl-server 1 0 0)' &
但这也意味着你不能做gimp-display-new,这是非常的 对调试很有用。我在编写新图像时使用交互式gimp 生成代码,然后在生产过程中使用--no-interface。
注意," 1"因为命令中的第一个参数指的是这个脚本要以非交互模式运行。我已经注释掉了(gimp-display-new img)命令;如果你在交互模式下运行它,它不仅会提示你输入各种参数,还会产生一个图像窗口来显示结果。但我们绝对不想在这个项目中担心可见的东西和交互操作。我们继续:"