GIMP現在開いている画像をPNG形式で一括エクスポートするプラグイン

GIMP コンピュータ
GIMP

複数の画像を開いている状態で、開いている画像を一括エクスポートするプラグインを作成しました。

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()

コードにエクスポート後に画像を閉じる処理を加えるか検討中。

追記:20240617
一番上のレイヤーのみが対象になっている模様。

コメント