複数の画像を開いている状態で、開いている画像を一括エクスポートするプラグインを作成しました。
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を試す。
GIMP-3.0RCがリリースされましたが、2.10系のpythonスクリプトは動作するか不明です。動かない可能性も高いため、その場合、勉強し直してスクリプトを作り直しなります。個人的にGIMPは結構な頻度で利用していて、python-fu...
追記:20240617
一番上のレイヤーのみが対象になっている模様。
コメント