Gimpのpython-fuを作ってgimpのプラグインに登録する
Gimpのpython-fuの使い方を書いていきます。この作業はいろいろややこしいことがあるため。はじめのほうは知っておいたほうがよいことから描いていきます。
python-fuとscript-fuは別物
gimpにはscript-fuとpython-fuというものがあります。これはまったくの別物で今回取り扱うのはpython-fuです。詳しくはGIMP – Wikipediaをみていただければよいかと思います。
pythonで書いたコードをgimpのメニューで使用できるようになるまでの手順
pythonで書いたコードをgimpのメニューに使用できるようになるまでの道のりは意外にややこしいため箇条書きにします。
- pythonでgimp用のコードを書く
- pythonのコードを拡張子.pyファイルとして保存
- 保存した.pyファイルを「C:\Users\ユーザー名\gimp2.8\plug-ins」フォルダに入れておく
- gimpを起動
- gimpメニューの「画像」という項目にプラグインが入っているか確認
これだけなのですが、注意点がいくつもあり挫折してまうかもしれません。
具体的な手順
上記のメニューにしたがって項目ごとに解説します
pythonでgimp用のコードを書く
gimpのプラグインとして登録するには、まずpythonコードを記述し拡張子.pyファイルを作成します。このコードにはregisterメソッド と import構文を忘れてはいけません。また文頭に#!/usr/bin/pythonを記述するなど細かいルールがあり、それらを忘れるとgimpのメニューにプラグインが表示されません。
今回は下記サイトのサンプルコードを解説させていただきます。
#!/usr/bin/python from gimpfu import * def plugin_main(timg, tdrawable): print "Hello, world!" register( "python_fu_resize", "Saves the image at a maximum width and height", "Saves the image at a maximum width and height", "Nathan A. Good", "Nathan A. Good", "2010", "<Image>/Image/Resize to max...", "RGB*, GRAY*", [], [], plugin_main) main()
- まず 1行目の#!/usr/bin/pythonは必要です
- つづいて3行目の宣言も必要です。
- つづいて5行目のdef文ですが、パラメーターを忘れるとgimpにメニューが表示されなくなりますので注意が必要です
- 8行目のregister()メソッドですが必ず必要になるメソッドで作者情報やメニューに表示される名前などを設定します。空文字 “”にしても問題ない項目もありますが、プロシージャ―名などを忘れるとメニューに表示されなくなるので注意が必要です
- 最後のmain()メソッドも必要です
慣れないうちは、人が作ったサンプルコードをそっくりコピーして、gimp起動後きちんとメニューに表示されているか確認することをおすすめします。
Pythonコードをプラグインフォルダに保存
プラグインフォルダの場所は上記のとおりです。gimpを起動している場合はいったんとじてから、gimpを再起動するとプラグインフォルダにおいたファイルが読み込まれます。
gimpのメニューにプラグインが表示されているか確認
gimpのプラグインフォルダにおいたpythonのメソッドはgimpメニューの画像タブに表示されます。この画像では自分で作ったものですがSave Allとういものが表示されています。
まとめ
gimpでpython-fuを使用するにはpythonコードにregisterメソッドを記述するなど、ややこしい作業がいくつかあります。registerメソッドは作者情報やプロシージャ―の名前を記述しています。これがないとgimpメニューにうまく表示されません。register()メソッドの書き方についてはこの記事の中にあるリンクなどをみて学んでいただければと思います。
最後にプラグインフォルダに.pyファイルを入れるとプラグインとして全世界の人に共有されます(勘違いかもしれない)。とくに気にする必要はないかと思いますが、その点は頭にいれておいたほうがよいかもしれないです。
コメント