【问题标题】:Gimp Python in Batch mode批处理模式下的 Gimp Python
【发布时间】:2013-05-25 21:25:00
【问题描述】:

我正在尝试以批处理模式执行一段 Python 代码来编辑现有的 Gimp 文件。出现以下错误

批处理命令遇到执行错误: 错误:(:1)评估:未绑定变量:命令行执行

这是我正在使用的代码:


#!/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()

请帮忙。

【问题讨论】:

  • 你在/home..之前缺少一个报价
  • jupp,把/home/Downloads/img.xcf"改成"/home/Downloads/img.xcf" 这就是语法高亮的美妙之处
  • 感谢您的快速回复。 file_save 语句有正确的引号,但我仍然得到错误。

标签: python gimp gimpfu


【解决方案1】:

完整答案在这里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错误是通过Scheme语言的CLI插入批处理命令时引起的。

但要检查您的函数是否已注册,请转到过程浏览器 (Help &gt; Procedure Browser) 并搜索您的函数(类似于 python-fu-command-line-execution)。

如果它不存在,请查看这篇文章,了解在哪里放置插件文件以使其注册:wikibooks

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

但都一样,你应该先尝试以格式运行命令,错误与给定的方案命令有关......

【讨论】:

  • 不幸的是,这与使用 gimpfu 库无关。
  • Error: ( : 1) eval: unbound variable: command-line-execution 错误是当您尝试从命令行调用函数时,它使用 Scheme 运行插件...检查您的函数是否已正确注册,您可以转到程序库 (Help &gt; Procedure Browser) 或尝试在控制台中运行它 (Filters &gt; Python Fu &gt; Console)。问题是……所有插件最终都会“转换”为方案函数。
猜你喜欢
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 2016-08-13
  • 2017-03-22
  • 1970-01-01
  • 2021-08-31
  • 2011-11-17
相关资源
最近更新 更多