PowerShellからpython-fuでgimpのバッチ処理

GIMP コンピュータ
GIMP
Windows版のGIMPはシェルからのバッチ処理が出来ないと思い込んでいましたが、調べてみたらバッチ処理を行っているページを見つけました。
https://gordiustears.net/gimp-batch-process-with-python-fu/

こちらのページを参考にPowerShellから実行してみたいと思います。
オプションのbatch-interpreterでpython-fu-evalを選びpython-fuを実行すること指定します。
オプションの-b(–batch)で実行するpythonスクリプト(の内容)を指定するのですが、参考にしたページでは標準入力でスクリプトファイルを渡しています。PowerShellではどのようにすれば良いのか知らなかったので調べてみました。

cat(Get-Content)でスクリプトファイルの内容を出力しパイプラインで渡してあげれば良いようです。

cat test.py | . "c:\program files\gimp 2\bin\gimp-2.10.exe" --batch-interpreter python-fu-eval --batch - 

test.py

#!/usr/bin/env python3
gimp.message("axc")

実行してみたところ成功しました。

 

スクリプト終了後GIMPを終了

cat test.py | . "c:\program files\gimp 2\bin\gimp-2.10.exe" --batch-interpreter python-fu-eval --batch - -b 'pdb.gimp_quit(1)'

python-fuのコンソールに張り付けて実行していた一括処理スクリプトをtest.py形式のファイルに保存し実行できるようになります。

作成したスクリプトのタイトルを眺めてみると、頻繁に使う物は無さそうですが、対象ファイルが多数あって同じ手順を繰り返す案件が多い感じがします。作業者の心理としては手作業で頑張るかバッチスクリプトを組むか迷うところです。バッチ処理のスクリプト化は大変ですが次に使う機会があれば少しの修正で使いまわすことが出来ます。また、GIMPの動作自体決して軽量級のアプリとは言えないので、ファイルのエクスポートひとつとっても意外と時間が掛かったりします。その点バッチ処理をスクリプト化すると実行したまま放置し、ユーザーたる人間は別の作業に時間を割り当てることが出来ます。

以上

コメント