[Part I. GIMP基礎功]

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



22.4 解析「印刷文字」對話盒

Logos 選單的新項目
  • 下圖是 Logos 選單的一部份,「Newsprint Text2」已出現在選單內。
  • 代表 news-text2.scm 這個 Script-Fu 在 GIMP 視窗介面裡所在的位置。


也就是, news-text2.scm 的執行位置,由「Logos」選單與「Newsprint Text2」項目名稱來決定。
77: _"Newsprint Te_xt2..."
94: "<Image>/File/Create/Logos")
程式碼第77行與第94行合起來,相當於:
  • "<Image>/File/Create/Newsprint Text2"
  • 代表了在GIMP視窗介面裡news-text2.scm這個Script-Fu所在的位置。


Newsprint Text2 對話盒內的控制元件



  • 對話盒內,有八樣控制元件,其顯示的資訊、參數的設定,與程式碼的對應關係為:
程式碼 對話盒的參數設定
第83行 Text: Gimp (預設的字串Newsprint,更改為Gimp)
第84行 Font: Sans
第85行 Font size(pixels): 100
第86行 Cell size(pixels): 100
第87行 Density (%): 60
第88行 Blur radius: 0 (可調整參數值的捲動按鈕)
第89行 Text color: black
第90行 Background color: white


SF-STRING 文字輸入框
第83行: SF-STRING _"Text" "Gimp",原為"Newsprint",將它改為"Gimp"
  • SF-STRING,表示會在Newsprint Text2對話盒上,產生一個字串的文字輸入框。
  • "Text String",為輔助說明的文字。
  • "Gimp",表示文字輸入框內預設的字串為Gimp。


SF-FONT 設定字型的對話盒
第84行: SF-FONT _"Font" "Sans"
  • SF-FONT,在對話盒上產生一個字型設定的按鈕,按下按鈕,可啟動設定字型的對話盒。
  • "Font",為輔助說明的文字。
  • "Sans",為預設字型。


SF-ADJUSTMENT 調整大小值的控制元件
第85行: SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
  • SF-ADJUSTMENT,在對話盒上產生一個可上下調整大小值的控制元件。
  • "Font size (pixels)",為輔助說明的文字。
  • '(100 2 1000 1 10 0 1),字形大小的預設值為100、最小值為2、最大值為1000,每次調整控制元件時,字形大小的增加為1。


接收參數,執行程式碼
第22行: (define (script-fu-newsprint-text2 string font font-size cell-size
第23行: density blur-radius text-color bg-color)
  • 藉由Newsprint Text2對話盒所輸入的參數,設定script-fu-newsprint-text2函式的string、font、font-size......八個變數。
  • 按下對話盒的「確定」按鈕後,按鈕上方的顯示框內,文字訊息會快速改變,此時script-fu-newsprint-text2函數被呼叫,傳入變數設定,news-text2.scm從第22行執行到第74行。
第70行:(gimp-display-new img)
  • 秀出最終成品的字體圖,一張「報紙印刷」字體的Gimp標誌圖。