見出し画像

GIMPのxcfファイルを一括保存

前回、GIMPでガイドを一定間隔で生成するプラグインの作成までは完了済みです。

ガイドの生成ができたので、意気揚々と
1.GIMPの「画像」→「Slice Using Guides」でガイドでファイルを分割。
2.BIMP(GIMPのバッチ処理)で、分割したファイルをpngファイルとしてエ
  クスポート。
するだけで終わりと思っていましたが。。。

ガイドで分割したファイルは、一度保存しておかないとエクスポートできない(?)様子。
そこで今回は、開いているすべてのファイルを「xcfファイル」として保存するプラグインを作成します。

xcfファイル保存プログラム

#!/usr/bin/python

from gimpfu import *
import os

def plugin_main(timg, tdrawable, dir_path):
	if (not type(dir_path) == type("") or not len(dir_path)):
		return
	for img in gimp.image_list():
		basename = os.path.basename(img.filename)
		filename = os.path.splitext(basename)[0]
		filepath = os.path.join(dir_path, filename + ".xcf")
		pdb.gimp_xcf_save(0, img, img.active_layer, filepath, filepath)
register(
		"python_fu_save_xcf",
		"Save files as xcf",
		"Select save directory",
		"kawasuke",
		"kawasuke",
		"2023",
		"Save files as xcf",
		"RGB*, GRAY*",
		[(PF_IMAGE, "timg", "Input image", None),
        (PF_DRAWABLE, "tdrawable", "Input drawable", None),
		(PF_DIRNAME, "directory_path", "Save directoryPath", ""),],
		[],
		plugin_main,
		menu = "<Image>/Image"
		)

main()

現在GIMPで開いている全ファイルを、xcfファイルとして保存するプログラムです。
上記コードを「save_xcf.py」として、GIMPのplug-insフォルダに保存します。

GIMPを起動すると、「画像」メニュー内に作成したプラグインが表示されました!

プラグインの表示

適当に画像を読み込み、ガイドを作成して、Slice Using Guidesで分割した後、今回作成したプラグインを実行します。

保存先を聞いてくるので適当に指定します。
おぉ、保存されました。

あとはBIMPにお任せ

xcfの保存ができれば、あとはBIMPでpngファイルに一括エクスポート。。。
できました!!

もっといろいろできそうな予感があります

今回、はじめてGIMP-Pythonでプラグインの作成を行いました。
GIMPのAPI群を見ていると、かなり細かい制御までできそうです。
Akkana Peckさんのサイトで公開されているサンプルも読み解きつつ、次のネタを探そうと思います。

参考にしたサイト

Gimp Python Documentation:公式サイトです。

Gimp Reference:Pythonから利用可能なメソッド調査に役立ちました。

Begining GIMP:Beginning Gimp の著者 Akkana Peck さんのサイト。
         サンプルがあります。


この記事が気に入ったらサポートをしてみませんか?