错误,Eval 未绑定变量 python GIMP,我知道这是一个简单的错误,非常感谢任何帮助

错误,Eval 未绑定变量 python GIMP,我知道这是一个简单的错误,非常感谢任何帮助

从 Windows 命令提示符尝试此脚本时获取未绑定的变量

通过 GIMP 菜单可以完美运行,但通过命令则不行

SET gimpEXE="C:\Program Files\GIMP 2\bin\gimp-2.8.exe"

for %i in ("C:\Users\abeta4\Desktop\ImgTest\*.jpg") do %gimpEXE% -i -b "(python-fu-resize %i TRUE)" -b "(gimp-quit 0)"

然后脚本 #!/usr/bin/python

from gimpfu import *

def plugin_main(timg, tdrawable, savecopy=TRUE):


    newWidth = 768
    newHeight = 1080
    timgsx = "sx"      

    pdb.gimp_image_scale(timg, newWidth, newHeight)

    if savecopy:
        pdb.file_png_save2(timg, tdrawable, "C:\\Users\\abeta4\\Downloads\\%s%s.png" % (timgsx, timg.name), timg.name+".jpg", 1,9,1,1,1,1,1,0,1)

register(
    "python_fu_resize",
    "Saves the image at a maximum width and height",
    "Saves the image at a maximum width and height",
    "xxx",
    "xxx",
    "2017",
    "<Image>/Image/Resize For Screens, Now Even Easier :)...",
    "*",
    [
        (PF_BOOL, "copy", "Make a PNG copy", TRUE),

    ],
    [],
    plugin_main)

main()

我是 Python 初学者,对于脚本中出现的新手错误深表歉意。

答案1

插件的定义方式是,它需要一个图像、一个可绘制对象和一个参数。但是

  1. 当你调用它时,你只需要提供一个图像名称和一个参数

  2. 您的 Python 代码plugin_main期望timg是一个gimp.Image对象,而不仅仅是一个文件名。因此必须先加载图像。

  3. 注册代码只声明了参数,省略了图像和drawable。

实际上,你的 Python 脚本甚至不需要被声明为插件。

StackOverflow 上也有类似的问题一些示例代码和解释另一个以获得更多解释。

相关内容