在Windows环境中,我想调用GIMP来执行python-fu脚本(通过BAT文件),但我正在使用的命令行调用不会产生预期的结果。
例如,考虑以下名为makeafile_and_quit.py
的python-fu脚本,它在我的GIMP的plug-ins
文件夹中显示。其目的是加载现有图像并以不同的名称保存:
#!/usr/bin/env python
# Sample call from GIMP's python-fu console:
# pdb.python_fu_makeafile_and_quit_script()
from gimpfu import *
def makeafile_and_quit( ) :
FILEPATH = 'C:\\path\\to\\file.JPG'
IMAGE = pdb.gimp_file_load( FILEPATH, FILEPATH )
pdb.gimp_file_save( IMAGE, pdb.gimp_image_get_active_drawable( IMAGE ), FILEPATH + '_2.jpg', FILEPATH + '_2.jpg' )
pdb.gimp_quit(0)
return
# PLUGIN REGISTRATION
# This is the plugin registration function
register(
'makeafile_and_quit_script',
'v0.0',
'A new concept',
'Author',
'Author',
'Just now',
'<Toolbox>/MyScripts/This will make a file and _QUIT',
'',
[],
[],
makeafile_and_quit
)
main()
如果从一个&#39; GUI实例调用脚本,该脚本可以完美无缺地执行。 GIMP,通过菜单调用脚本。它会生成一个以&#39; _2.jpg&#39;结尾的新文件。与源文件位于同一文件夹中。
使用以下命令从命令提示符调用时,行为会有所不同:
"C:\Program Files\GIMP 2\bin\gimp-2.8.exe" --batch '("makeafile_and_quit.py")' -b "(gimp-quit 0)"
创建GIMP实例,然后关闭,但即使看到消息batch command executed successfully
,也不会创建文件。
如何从命令行重复与&#39; GUI实例完全相同的行为?
答案 0 :(得分:0)
来自我的Windows档案:
gimp -idf -b "yourscript" -b "pdb.gimp_quit(1)"
答案 1 :(得分:0)
经过多次摆弄后,我得到了以下命令,该命令按预期工作:
“C:\ Program Files \ GIMP 2 \ bin \ gimp-console-2.8.exe”--verbose --batch “(python-fu-makeafile-and-quit-script RUN-NONINTERACTIVE)” - 补丁 “(gimp-quit 0)”
注意:
gimp-console-2.8.exe
代替gimp-2.8.exe
以避免在执行结束时进行不必要的击键python-fu-
-
代替_
RUN-NONINTERACTIVE
参数DISPLAY = gimp.Display( IMAGE )
,这会使脚本失败并显示gimp-console-2.8.exe