正如标题所暗示的,有人知道如何在 Windows 中使用 gimp-console-[version].exe 程序在格式之间批量转换(使用默认设置)吗?
答案1
答案2
输入以下内容~/.gimp-<YOURVERSION>/scripts/myconvert.scm
:
(define (myconvert in_filename out_filename)
(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE in_filename in_filename)))
(drawable (car (gimp-image-get-active-layer image)))
)
(gimp-file-save RUN-NONINTERACTIVE image drawable out_filename out_filename)
(gimp-image-delete image)
)
)
然后,您可以运行以下命令将当前目录中的所有文件转换为 JPG:
for A in * ; do gimp -i -b "(myconvert \"$A\" \"$A.jpg\")" -b '(gimp-quit 0)' ; done
答案3
还有基于向导的批处理器可用:
DBP(大卫批处理器)对于 GIMP
答案4
有人知道如何在 Windows 中使用 gimp-console-[version].exe 程序在格式之间批量转换(使用默认设置)吗?
使用gimp-console-[version].exe
一种叫做“方案”用于命令解释。脚本通常以扩展名结尾.scm
。
由于引号的细微差别,Scheme 很难批量传输到控制台这里,但这是可能的。
下面是一个使用批处理将.svg
当前目录中的所有文件转换为.png
文件的示例。它还将在注册表中查找 Gimp 可执行文件并计算命令行版本的路径。
@echo off
set resolution=72
set width=400
set height=600
REM Find Gimp in the registry
for /f "tokens=2*" %%a in ('reg query "HKCR\GIMP2.svg\shell\open\command" /ve 2^>^&1^|find "REG_"') do @set gimp=%%b
REM Calculate console exe
set gimp=%gimp:gimp-=gimp-console-%
REM Isolate exe
for %%i in (%gimp%) do (
@set gimp=%%i
goto :found
)
:found
echo Found Gimp console: %gimp%
REM Process files (change to "for /r %%i" for recursion)
for %%i in (*.svg) do (
echo - Converting [ %%i --^> %%~ni.png ] ^(%width%x%height%@%resolution%^)
%gimp% -i -b "(let* ((image (car (file-svg-load RUN-NONINTERACTIVE \"%%i\" \"\" 72 (- 0 400) (- 0 600) 0))) (drawable (car (gimp-image-get-active-layer image)))) (plug-in-autocrop RUN-NONINTERACTIVE image drawable) (gimp-file-save RUN-NONINTERACTIVE image drawable \"%%~ni.png\" \"%%~ni.png\") (gimp-image-delete image))" -b "(gimp-quit 0)"
)
请注意,此最终命令行可以适用于其他平台,方法是使用单引号将整个 scheme 命令括起来,并在其中使用裸双引号。已在 Gimp 2.10.18、2.10.14 上测试。
这个答案使用.scm
从以下网络存档文章的文件中提取的代码:马修·盖茨 2014标题为“Gimp SVG 到光栅脚本”。