Erro, Eval não ligado python variável GIMP, eu sei que é um erro simples, Qualquer ajuda é muito apreciada

0

Obtendo uma variável Unbound ao tentar este script no prompt de comando do Windows

Funciona perfeitamente no menu do GIMP, mas não no comando

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)"

Em seguida, o script     #! / 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()

Iniciante em Python aqui, desculpe por erros de noob no script.

    
por Ian Harper 19.08.2017 / 20:03

1 resposta

0

A maneira como seu plugin é definido, leva uma imagem, um drawable e um parâmetro. Mas

  1. quando você liga, só dá um nome de imagem e um parâmetro

  2. o código python no seu plugin_main espera que o timg seja um objeto gimp.Image , não apenas um nome de arquivo. Então, algo teria que carregar a imagem primeiro.

  3. o código de registro apenas declara o parâmetro e omite a imagem e desenha.

Na prática, seu script python nem precisa ser declarado como um plugin.

Veja esta pergunta semelhante no StackOverflow para obter exemplos de código e explicações e este outro para mais explicações.

    
por 20.08.2017 / 00:32