【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に組み込まれているPython-Fu(Python)を試してみたました。Pythonのバージョン2.7.17現行のPythonのバージョンは3系ですので若干古いです。デバック用にコンソールを表示させる起動オプション...

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

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

コメント