2013-05-25 38 views
1

我想在批处理模式下执行一段Python代码来编辑现有的Gimp文件。得到以下错误在批处理模式下的瘸子Python

批处理命令经历执行错误: 错误:(1:1)的eval:未结合的变量:条命令行-执行

这里是我使用的代码:


#!/usr/bin/env python 

from gimpfu import * 

# the script 
def my_tf_cmd_function(fle, fontname, fontsize) : 
    image = pdb.gimp_file_load(fle,fle) 
    drawable = pdb.gimp_image_get_active_layer(image) 
    image.undo_group_start() 
    foreground = gimp.get_foreground() 
    gimp.set_foreground(240,240,240) 
    textlayer1 = gimp.Layer(image, "Troo", drawable.width, drawable.height, RGBA_IMAGE, 100, NORMAL_MODE) 
    image.add_layer(textlayer1, 0) 
    pdb.gimp_drawable_fill(textlayer1, 3) # transparent fill 
    gimp.set_background(255, 255, 255) 
    gimp.set_foreground(240,240,240) 
    floattext = pdb.gimp_text_fontname(image, textlayer1, 200, 100, "T", 1, 1, fontsize, 1, fontname) 

    pdb.gimp_floating_sel_anchor(floattext) 
    gimp.set_foreground(foreground) 
    image.undo_group_end() 
    pdb.gimp_file_save(image, drawable, "/home/Downloads/img.xcf", "/home/Downloads/img.xcf") 
    return 


# This is the plugin registration function 
register(
    "command_line_execution",  
    "My Command Line Attempt Python-Fu", 
    "This script does nothing and is extremely good at it", 
    "RC",  
    "RC", 
    "May 2013", 
    "<Image>/MyScripts/My Command Python-Fu", 
    "*", 
    [ 
     (PF_STRING, "fle", "GlobPattern", "*.*"), 
     (PF_FONT, "fontname", "Foo font", "Arial"), 
     (PF_INT, "fontsize", "Foo font size", 18) 
    ], 
    [], 
    my_tf_cmd_function, 
    ) 

main() 

请帮忙。

+0

你之前'/ home..' – mata

+0

缺失报价jupp,将'/home/Downloads/img.xcf''改成'“/ home/Downloads/img。xcf“'这就是语法突出的美妙之处 –

+0

感谢您的快速回复。file_save语句有正确的引号,但是我仍然得到错误。 –

回答

-2

完整的答案在这里solving gimp unbound variable error

所以我试图找出如何运行GIMP的功能时,碰到这个问题就来了。

而且我发现这里的答案:IBM developerWorks

所以基本上你调用该函数,像这样:

gimp -i -b '(python-fu-command-line-execution 0 0 0 "*.*" "Arial" 18)' -b '(gimp-quit 0)'

前3个零是3个默认参数:

  • INTERACTIVE MODE OR NOT
  • img IMAGE
  • draw DRAWABLE

我知道你的代码并没有真正使用任何这些,但这些都需要,所以......和他们为什么必须是整数,我不知道我自己。我试错了,发现INTEGER适合我。

如果有人对所发生的事情有更好的理解,请启发。

编辑:

所以我有这个问题我自己开始...我发现该Error: (: 1) eval: unbound variable: commmand-line-execution错误是通过CLI中Scheme语言插入批处理命令时引起的。

但要检查您的功能是否已注册,请转至程序浏览器(Help > Procedure Browser)并搜索您的功能(它将类似于python-fu-command-line-execution)。

如果它不在那里,请查看这篇关于在哪里放置插件文件以获得注册的文章:wikibooks

如果它已注册,您可以尝试在控制台中运行它。 (Filters > Python Fu > Console),如果它运行,您的代码没有问题。

但都是一样的,你应该尝试先在格式运行命令,错误的东西与所给出的方案命令

+0

不幸的是,这与使用'gimpfu'库无关, – SiHa

+0

'错误:(:1)eval:unbound变量:命令行执行错误是当您尝试从它使用的命令行调用函数时Scheme运行插件...以检查您的函数是否已正确注册,你可以进入程序库('Help> Procedure Browser')或者在控制台('Filters> Python Fu> Console')中运行它。事情是......所有的插件最终都被“转换”为方案功能。 – ongspxm