在我的 Windows 机器上,我想使用 GIMP 修改filename.png
当前目录中的所有 PNG 文件 ( ) 并将输出文件保存到子目录out/filename.png
。 所需的处理是:
- 添加圆角
- 添加阴影
- 调整图像大小
为此,我尝试使用以下脚本并将其放在C:\Program files\GIMP\share\gimp\2.0\scripts
:
(define (script-fu-shadowcorners infile outfile width height)
(let* ((image (car (file-png-load 1 infile infile)))
(drawable (car (gimp-image-active-drawable image)))
)
(script-fu-round-corners image drawable 10 FALSE 8 8 30 FALSE FALSE)
(script-fu-drop-shadow image drawable 8 8 12 '(0 0 0) 45 TRUE)
(gimp-image-scale image width height)
(gimp-file-save RUN-NONINTERACTIVE image drawable outfile outfile)
)
)
(script-fu-register "script-fu-shadowcorners" "" "" "" "" "" "RGB*" SF-FILENAME "Infile" "infile.png" SF-FILENAME "Outfile" "outfile.png")
之后,我尝试使用以下批处理文件调用该脚本:
for %%x in (*.png) do "C:\Program files\GIMP\bin\gimp-2.8" -i -b "(script-fu-shadowcorners \"%%x\" \"newfolder\\%%x\")"
它不起作用。它总是说找不到文件,速度很慢,而且没有输出。
现在 CMD 命令可以工作了,至少问题还没有完全解决。在 CMD 中,我的批处理命令后面出现了一行,%%x
用第一个文件名替换通配符 - 但只是第一个。在输出目录中,我也找不到除第一个文件之外的其他文件。然而,Gimp 的输出是batch command executed successfully
。
我做错了什么?你能帮助我吗?非常感谢!
答案1
解决方案分为两部分:
第1部分:批处理命令的语法错误,特别是引号需要正确设置:
for %%x in (*.png) do "C:\Program files\GIMP\bin\gimp-2.8" -i -b "(script-fu-functionname \"%%x\"
第 2 部分:Gimp 总是等待我“按任意键”是由于使用了错误的二进制文件:必须使用gimp-2.8
而不是 。gimp-console-2.8
谢谢,卡兰,提示解决方案。