从 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
插件的定义方式是,它需要一个图像、一个可绘制对象和一个参数。但是
当你调用它时,你只需要提供一个图像名称和一个参数
您的 Python 代码
plugin_main
期望timg
是一个gimp.Image
对象,而不仅仅是一个文件名。因此必须先加载图像。注册代码只声明了参数,省略了图像和drawable。
实际上,你的 Python 脚本甚至不需要被声明为插件。
看StackOverflow 上也有类似的问题一些示例代码和解释另一个以获得更多解释。