複数の画像を開いている状態で、開いている画像を一括エクスポートするプラグインを作成しました。
GIMPのXCFファイルをPNG形式で一括エクスポートするスクリプトは以前から使っていたのですが、コードをpython-fuコンソールにコピー&ペーストする必要があり、画像ファイルに合わせてコードを書き換える必要もありました。
出力先のディレクトリを任意に指定するよい方法が思いつかなかったのですが、シンプルに元画像のファイルのディレクトリの下にExportPNGというサブディレクトリを作成して、そちらに保存するようにしてみました。
そうすることでGIMPのフィルターのようにメニューから呼び出すことが出来るプラグインにすることが出来ました。
#!/usr/bin/env python
# coding: utf8
from gimpfu import *
from array import array
from time import time
import os
def plugin_main():
image_list = gimp.image_list()
if (len(image_list) == 0):
return
dirname = os.path.dirname(image_list[0].filename)
dirname = os.path.join(dirname, "ExportPNG")
if not(os.path.exists(dirname)):
os.mkdir(dirname)
#gimp.message(dirname)
for img in image_list:
bn = os.path.splitext(os.path.basename(img.filename))[0] + ".png"
exportFile = os.path.join(dirname, bn)
# gimp.message("{0}".format(exportFile))
layer = pdb.gimp_image_merge_visible_layers(img, 0)
pdb.gimp_file_save(img, layer, exportFile, exportFile)
register("ExportAllPng", "", "", "", "", "",
"全てPNG形式エクスポート",
"",
[],
[],
plugin_main,
menu = "<Image>/Filters/Etc")
main()
コードにエクスポート後に画像を閉じる処理を加えるか検討中。
プラグインの導入方法は以下のページを参照
Windows版GIMP-2.10でPython-Fuを試す。
Python-FuはGIMPの操作手順をスクリプト化することで自動実行するための仕組みです。Python-Fuの場合スクリプト言語はpythonで、pythonからGIMPをオブジェクトと見立てて操作する感じになります。 実行する方法は2つ...
追記:20240617
一番上のレイヤーのみが対象になっている模様。
コメント