Получение переменной Unbound при попытке этого сценария из командной строки 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 / бен / питон

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

0

То, как ваш плагин определен, это изображение, рисование и параметр. Но

  1. когда вы вызываете его, вы даете только имя изображения и параметр

  2. код python в вашем plugin_main ожидает, что timg будет gimp.Image , а не просто имя файла. Так что что-то должно было бы загрузить изображение в первую очередь.

  3. регистрационный код только объявляет параметр, и пропускает изображение и рисуется.

На практике ваш скрипт на python даже не нужно объявлять как плагин.

Посмотрите этот похожий вопрос на StackOverflow для некоторого примера кода и объяснений, а этот другой для некоторых дополнительных объяснений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .