我刚刚开始学习使用 Python 编写 Gimp 脚本,并且想知道如何将文本输出到控制台?我在 Windows 7 上使用 2.7.5 版。
我尝试了打印功能,但它没有向 python-fu 控制台或使用 Gimp 启动的开发控制台写入任何内容。有没有我应该使用的功能来做到这一点?或者这是 2.7.5 版本的问题?我发现了一些“gimp-message”的提及,但这似乎是与 Scheme (Script-fu) 一起使用的函数
谢谢!
(也在这里作为线程发布)
我们可以重定向标准输出和标准错误。
#!/usr/bin/env python
# coding: iso-8859-1
from gimpfu import *
import sys
sys.stderr = open( 'c:\\temp\\gimpstderr.txt', 'w')
sys.stdout = open( 'c:\\temp\\gimpstdout.txt', 'w')
def MyUsefulFilter(img, drw):
# these print redirected to gimpstdout.txt
print 'hello world'
print img
print drw
# this error redirected to gimpstderr.txt
x = 0
y = 1/x
pdb.gimp_image_undo_group_start(img)
# useful code here
pdb.gimp_image_undo_group_end(img)
register(
"useful_filter",
"very useful indeed",
"",
"MF",
"GPL",
"2013",
"<Image>/Filters/Photo/Useful Filter",
"RGB*",
[],
[],
MyUsefulFilter)
main()
采用:
pdb.gimp_message('This is displayed as a message')
但是...如果控制台窗口已启动,则会显示在错误控制台中,否则会显示在带有确定按钮的消息对话框中,等待用户确认。所以你真的只能在脚本中使用它一两次......
还有
pdb.gimp_progress_set_text('This goes to the status bar')
这会转到状态栏(IIRC)和插件进度对话框(如果有的话),但这只是暂时的。
您还可以使用纯打印语句进行调试。在 Linux 上,它们的输出显示在您启动 Gimp 的终端中,而在 Windows 上,如果您以这种方式启动 Gimp,它们可能会出现在 gimp-console 中(因此,除非您真的告诉他们在哪里查看,否则一般用户将看不到任何东西) .
从 python 脚本打印只会打印到 GIMP 的 stdout 通道 - 在 Windows 中,您可能必须从命令行启动 GIMP 本身,而不是从菜单启动它。