省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

GIMP / Python プログラミング TIps: Python-fu (Ver. 2.10) における API の基本的な種類

 GIMP Ver. 2.10.x における Python-fu は Python 2.7に準拠するとともに、gimpfu という GIMP を操作するライブラリがあり、そこから GIMP を操作する API を読み込みます。なお gimpfu を読み込むと同時に gimp および gimpenums という2つのライブラリも読込まれます。

 なお、GIMP 開発版 Ver. 2.99 では gimpfu がサポートされず、直接 gtk3.0 の API を叩いて GIMP を操作することになりそうです。このため、大幅に GIMP における Python スクリプトの書き方が変わる予定となっており、しかも現状では、どう書けばよいのかインストラクションも公開されていません。

 なお、以前紹介しましたが、個人の方で gimpfu の開発を手掛けている方がおられます。しかし、開発チームから正式な開発プロジェクトへの採用を断られてしまいましたので、現在こちらの試みは 2 年前の段階で足踏みしています。

 

 余談はともかく、現状 Ver. 2.10 の Python-fu の API は大きく分けて2つあります。

1. GIMP のオブジェクトのメソッドやプロパティとして操作を行うもの

2. Script-fu と共通のプロシジャーを API として呼び出すもの

 

 まず、1 の説明ですが、GIMP では以下の最上位のオブジェクトをサポートしています*1

gimp

image

channel

layer

drawable

tile

pixel region

pdb

 

これらのメソッドやプロパティ (メンバー) として API を呼び出します。例えば

gimp.set_background(r, g, b)

image.filename
image.add_layer_mask(layer, mask)

 

といった具合です。

 

 2. の API ですが、GIMP のプロシジャーブラウザから見ることのできる API です。

プロシジャーブラウザの呼び出し

プロシジャーブラウザの表示

これらを Python スクリプト上で使うには、頭に pdb. をつけて以下のように書きます。

pdb.gimp_layer_group_new(img)

pdb は procedure data base の略です。

プロシジャーブラウザ上の - (ハイフン) はすべて Python スクリプト上では _ (アンダーバー) に直してください。また引数で run-mode がありましたら Python 上では省略します。

 また、以下にも GIMPAPI が挙げられていますが、これも上記と多くは重なっています (ただし、一部 Python から呼び出せないものもあるようです)。

developer.gimp.org

 

3. ドキュメント化されていない API

 実はドキュメント化されていない API が結構あります。これは Python-fu のコンソールから gimpfu を読み込んでおき、dir コマンドと help コマンドで調べることができるものがあります。しかし、コマンド名しか分からないものもあります。

 これらについては、オンラインディスカッションを見るか、どなたかが公開しているプログラミング例を探して調べるしかありません。

 

 

*1:以下を参照。

www.gimp.org