GIMPにおいて Python-fu を使ったプログラミングを行う場合、特にWindows環境ではデバッグが難しく結構大変です。下手をするとどこが間違っているのかさっぱり分からない場合もしばしばです。私自身もGIMP初歩プログラマですが、それでも私自身の経験も記しておくと、何かのお役に立てるかもしれません。そこで今回私が作成したGIMPで黄変写真補正用素材画像を読み込むプラグインに関する解説をなるべく丁寧に行い、Python-fu を使ったプログラミングを試みる方への参考に資そうと思います。
なお、GIMPにおけるPythonプログラミングの基本的な参考サイトはこちらのリンクをご覧ください。また、プラグイン配布サイトにプログラミングを行った際に参考としたサイトを載せています。
まず基本的なプラグインのひな型について解説します。青字が注釈です。緑字は適宜変更して記述する場所です。
基本的なひな形
#!/usr/bin/python →Pythonインタープリターを起動
# -*- coding: codename -*- ←必要に応じてスクリプトで使う文字コードを宣言
必要なければこの行自体不要
メニューに日本語を表示したい場合 codenameはutf-8にする
同時にプラグインファイル全体をuft-8で保存しておく
from gimpfu import * →Python用GIMPライブラリを呼び出す 他のライブラリも呼び出す必要があれば適宜ここで宣言
def plugin_name( 引数 ): →プラグインの本体を以下定義
ここにプラグインの具体的処理内容をインデントをつけて記述
register( →以下GIMPにプラグインとして登録する際の情報を記述
"proc_name", →プラグインコマンド名
"blurb", →プロシジャーブラウザに表示するプラグインの説明
"help", →プラグインのhelpで表示する説明 blurbと同一で可
"author", →プラグイン著者名
"copyright", →プラグイン著作権者名 通常はauthorと同一
"date", →著作年等
"label", →メニューの中で表示されるプラグインのラベル
例えば、"Resize to max..." 等
"imagetypes", →プラグインが処理対象とする画像のタイプ
具体的には RGB, RGB*, GRAY*, INDEXEDなど
指定しないなら "" で良い。また2つ以上指定するならカンマで区切り
"RGB*,GRAY*" などと記述
[parms], →プラグインに与えるパラメーター
もしプラグイン起動時に入力ダイアログを表示する場合はここに記述※
入力ダイアログがなければ のまま
, →プラグインの結果 通常は [] のままでよい
plugin_name,
→Plugin_nameは、Pythonコードで呼び出す際のメソッドの名前
def で、定義した名前を使用。
def で plugin_main としたら
ここでも、それと同じく plugin_main と書く。
menu = "menuexpresson")
→また、menuexpression は、プラグインをGIMPのメニューの
どこに表示するかを指示する。
main() →プラグイン本体を呼び出し