読者です 読者をやめる 読者になる 読者になる

プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

【Gimp】Cによるプラグイン開発

プログラム関連 C/C++

Gimp用のプラグイン開発について調べたので、以下にまとめておきます。

なお、使用したOS, Gimpのバージョンは以下のとおりです。

  • OS : Ubuntu 9.04 Desktop 日本語 Remix版
  • Gimp : 2.6.6
  • その他関連するライブラリ:Ubuntuインストール時のもののはず

 

プラグインの作り方

開発に必要なパッケージは、別途開発環境整備についてまとめた記事をご覧ください。

(1)開発に必要なパッケージをインストールします(別記事参照)

なお、プラグイン開発の説明で出てくる、gimptool-2.0 はlibgimp2.0-dev パッケージに含まれています。

(2)下記の参考にしたサイトのとおり、コーディング・コンパイルします

英語ですが、サンプルコードもダウンロードできるので説明は割愛します。また、日本語訳を行ってくださってるページもあったので、下記に紹介しておきます。

(3)作成したバイナリを~/.gimp2.6/plug-ins ディレクトリに移動します

サンプルのため個人用のプラグインディレクトリに移しました。システム全員で使う場合は、gimptool-2.0 --install-admin オプションでインストールすれば適切なディレクトリにインストールされます。

(4)Gimpから正常に呼び出せればOKです。

なお、Gimp2.6ではプラグインブラウザは、『ヘルプ』→『プラグインブラウザ』から起動します。

(参考にしたサイト)

プラグインの解説と簡単なサンプルが載っています

上記ページの日本語訳

 

感じたことと今後

確かに、上記の参考サイトのようにすれば、プラグインは書けるのですが、 GUIまわりのコーディングをCで行わなければいけないのが、正直気がひけます。

そうしたとき、スクリプトだと一括処理のマクロは書けても対話的な処理を求めるプラグインは書けないと思っていたら、Pythonのスクリプト(Python-Fu)だと、GUIを使った対話的な処理も書けそうなことに気づきました。なので、どうしてもCで書かないといけない場合以外は、Pythonでやってみようと思っています。

考えてみると、Gimpのプラグインは、Gimp本体とは別プロセスで起動されるので、PDBとのやりとりさえできればどの言語でも書けるはずです(このためPython-Fuはプラグインと同じ扱いになってます)。

 

なお、本格的にCでプラグインを開発するならば、Gimpのリポジトリからテンプレートが手に入りますので、それを使って処理部分のみを追加するのがもっとも手っ取り早いのではないかと思います。

(テンプレート配布場所)

ftp://ftp.gimp.org/pub/gimp/plugin-template/