当記事に掲載中のサンプルコードに深刻な誤りがありました(修正前のコードではGIMPにプラグインとして認識されず、GIMPのプラグイン一覧に表示されない)。register関数に渡す引数の7番目が誤っていましたので下記の通り訂正します。
"/Filters/hoge/hoge",
"<Image>/Filters/hoge/hoge",
当記事をご覧の方に誤った情報を提供し、ご迷惑をおかけ致しましたことをお詫び申し上げます。
バージョン2.8のGIMPのPython-Fuでスクリプトを書く際の個人用メモ書き。
GIMPからスクリプトを呼び出したときに最初に実行される関数には、引数に現在の画像(image)と現在のレイヤー(layer)が渡されてくる。これをコンソールでの逐次実行上で模擬するため、スクリプトを書き始める際にまず以下の二行をコンソールに入力する。
image = gimp.image_list()[0]
layer = image.active_layer
以後、取得したimageとlayerに対して処理を書いてコンソールに入力し、想定通りの処理が行われていくかを確かめる。想定通りであることが確認できたら、関数にまとめあげる。
image = gimp.image_list()[0]
layer = image.active_layer
def hoge(image, layer):
# 何らかの処理
pass
hoge(image, layer)
最終的にGIMP上から実行可能にするためには、まず以下の通りに書き換え、さらにregister関数に渡す値を適宜書き換えた後に、plug-insフォルダ内に保存する。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gimpfu import *
def hoge(image, layer):
# 何らかの処理
pass
register(
"hoge",
"blurb",
"help",
"author",
"copyright",
"2018",
"<Image>/Filters/hoge/hoge",
"*",
[],
[],
hoge
)
main()