【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を試す。
GIMP-3.0RCがリリースされましたが、2.10系のpythonスクリプトは動作するか不明です。動かない可能性も高いため、その場合、勉強し直してスクリプトを作り直しなります。個人的にGIMPは結構な頻度で利用していて、python-fu...

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

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

コメント