複数のPNGファイルをGIMPで加工する状況で、PNGからXCF形式に一括で変換します。
その場合別フォルダの同名pngファイルをレイヤーとして追加することが出来ます。
このスクリプトは以前にも作成していますが、今回は追加レイヤー用画像ファイルが存在する場合のみレイヤーの追加するルーチンと、レイヤー名をセットするルーチンを追加しています。
#!/usr/bin/env python
# coding: utf8
import os, glob
path = 'ディレクトリ'
base_dir = os.path.join(path, "ベースディレクトリ")
layer_dir = os.path.join(path, "レイヤーディレクトリ1")
layer_dir2 = os.path.join(path, "レイヤーディレクトリ2")
outdir = os.path.join(path, "xcf")
if not os.path.exists(outdir):
os.mkdir(outdir)
for src_file in glob.glob(os.path.join(base_dir, "*.png")):
img = pdb.gimp_file_load(src_file, src_file)
disp = pdb.gimp_display_new(img)
pdb.gimp_layer_add_alpha(img.active_layer)
pdb.gimp_item_set_name(img.active_layer, "レイヤー名0")
layer_path = os.path.join(layer_dir, os.path.basename(src_file))
if os.path.exists(layer_path):
layer = pdb.gimp_file_load_layer(img,layer_path)
pdb.gimp_item_set_name(layer, "レイヤー名1")
pdb.gimp_layer_add_alpha(layer)
img.add_layer(layer, 1)
layer_path2 = os.path.join(layer_dir2, os.path.basename(src_file))
if os.path.exists(layer_path2):
layer2 = pdb.gimp_file_load_layer(img,layer_path2)
pdb.gimp_item_set_name(layer2, "レイヤー名2")
pdb.gimp_layer_add_alpha(layer2)
img.add_layer(layer2, 1)
dst_file = os.path.join(outdir, (os.path.splitext(os.path.basename(src_file))[0]+'.xcf'))
pdb.gimp_file_save(img, img.active_layer, dst_file, dst_file)
pdb.gimp_display_delete(disp)
コメント