[Part I. GIMP基礎功]

[Part II. 一種效果的誕生]
[Part III. Script-Fu的秘密]

14.1 快速學會 Python-Fu 的秘訣

秘訣1. Python 難度不高,難的是,用 PDB 查詢函數的用法
  • PDB 是指 Procedure Database 程序資料庫。
  • GIMP Python Console ,訊息視窗的右下方「瀏覽 Browse」的按鈕,可快速存取 PDB ,查詢函數的用法。
  • 如果已精通 Python 語言,實務上,撰寫 Python-Fu,要下最多功夫的,就是查詢函數的用法。
  • 也就是,經常要啟動程序資料庫 Procedure Database 對話盒。
  • 如前圖所示,使用 Python Procedure Database 分四步驟:
    1. 鍵入函數名稱,名稱可以不完整。
    2. 找到該函數的解說資料。
    3. 閱讀函數參數值與回傳值的意義。
    4. 按下「套用」的按鈕,附帶參數的函數,會放置到 Python Console 提示符號 >>> 之後。
  • 在這個例子,會得到 pdb.gimp_edit_fill(drawable, fill_type)
  • 根據自己需求,修改 drawable 與 fill_type


秘訣2. 閱讀 GIMP Python Documentation
  • Python-Fu 的開發者 James Henstridge 撰寫了說明文件 GIMP Python Documentation ,這是一份詳實的說明文件。
  • 文件的重點:
    • 解說 Python-Fu 要用到的 module 模組。
    • 說明 Python-Fu 的架構,以 clothify 纖維紋路為例,提供一個完整的 Python-Fu 程式的範例。
    • 說明 GIMP 物件模型,以及 Python 物件導向的語法。


秘訣3. 明白 Python-Fu 是根植於 Script-Fu
  • 閱讀 GIMP Python Documentation ,會看到 register 的參數很長很長,至少要七八行以上,會發現 Python-Fu 與 Script-Fu 架構很接近,幾乎是一樣的,只有細部的語法不同。
  • Python-Fu 的開發者 James Henstridge 其實可以創造出一個更精簡的架構,或一個更精簡的 register 函數。
  • James Henstridge 讓 Python-Fu 與 Script-Fu 架構相近,這說明了 Python-Fu 的難度不在於架構,而在於函數的調用與函數的參數。
  • 這呼應了「秘訣1」所強調的,用 PDB 查詢函數的用法。