gimpのバッチ処理だとbimpが知られている。
のだけれど、script-fuやpython-fuでもバッチ処理はできる。bimpよりは、これらのほうが出来ることが多い。
script-fuはScheme系の言語でちょっぴり敷居を感じてしまう。ということでpython-fuでの例を探したので、メモしておく。 慣れないpythonだが、この手のもので必要に迫られれば使うかも。
例えばカレンドディレクトリにあるtifファイルからGimp形式 xcfに変換するだけの処理は以下のようなpythonコードになる:
#!/usr/bin/env python3
import os, glob
pwd = os.getcwd()
for src_file in glob.glob(os.path.join(pwd, "*.tif")):
img = pdb.gimp_file_load(src_file, src_file)
disp = pdb.gimp_display_new(img)
dst_file = os.path.join(pwd, (os.path.splitext(os.path.basename(src_file))[0]+'.xcf'))
pdb.gimp_file_save(img, img.active_layer, dst_file, dst_file)
pdb.gimp_display_delete(disp)
これを次のようにして呼び出す:
#!/bin/sh
/cygdrive/c/Program\ Files/GIMP\ 2/bin/gimp-2.10.exe --console-messages --no-splash --no-data --batch-interpreter python-fu-eval --batch - < conv2xcf.py -b 'pdb.gimp_quit(1)'
これをtif2xcf.shなどと保存して実行も出来る。(--no-interfaceはうまく動かない。メモリリーク?的なエラーがでる。)
Windows上なので、ここではCygwinから呼び出すことにしてみた。
参考にしたページ
上記は以下の二つの記事のまんまを合体しただけ。
コマンドラインから実行するものは少なくて、プラグインを作成するものが多い。 プラグインでないものはgimp上でコンソールを開いてそこに流し込む系が多いようだ。