【GIMP・Python-Fu】xcfファイルをPNG形式で一括エクスポート

GIMP コンピュータ
GIMP
フォルダ内にあるxcfファイルをグレースケールのPNG形式でエクスポートする一括処理スクリプトです

# coding: utf8

# GIMP Python-Fu
# xcfファイルをPNG形式で一括エクスポート

import os, glob

xcf_dir = 'D:/o2'
export_dir = 'D:/png2'

if not os.path.exists(export_dir):
        os.mkdir(export_dir)

for src_file in glob.glob(os.path.join(xcf_dir, "*.xcf")):
        basename, ext = os.path.splitext(os.path.basename(src_file))
        
        img = pdb.gimp_file_load(src_file, src_file)
        disp = pdb.gimp_display_new(img)
        # アルファチャンネルがある場合削除
        if (pdb.gimp_drawable_has_alpha(img.active_layer)):
                pdb.gimp_layer_flatten(img.active_layer)
        # グレースケールに変換
        pdb.gimp_image_convert_grayscale(img)
        
        dst_file = os.path.join(export_dir, (basename+'.png'))
        
        pdb.gimp_file_save(img, img.active_layer, dst_file, dst_file)
        pdb.gimp_display_delete(disp)
以前に画像フォーマット変換用に作ったスクリプトと基本同じもので、アルファチャンネルの削除とグレースケールに変換を追加しています。
そのままエクスポートしたい場合は、各処理のコメントの次の行をコメントアウトしてください。
Windows版GIMP-2.10でPython-Fuを試す。
Python-FuはGIMPの操作手順をスクリプト化することで自動実行するための仕組みです。Python-Fuの場合スクリプト言語はpythonで、pythonからGIMPをオブジェクトと見立てて操作する感じになります。 実行する方法は2つ...

xcfの読み込みに特別の儀式が必要かとも思いましたが普通の画像ファイルと同じように読み込めてしまいます。

スクリプトを使用する場合
入力画像の場所xcf_dir とPNGファイルの出力先export_dirは実行環境に合わせて変更すること。
GIMPメニュー→フィルター(R)→Python-Fu→コンソール(C)で起動し、スクリプトを貼り付けエンターキーを押す(2回?)で実行

コメント