[Part I. GIMP基礎功]

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

12.6 以「填色填圖」為例,把「操作流程」變為程式碼

本節內容,綜合這三節

  • 下面這一段圖文敘述,在「12.3節」已經出現過。


GIMP 視窗介面,「以填色工具填滿圖樣」的「操作流程」
  • 欲在矩形區域內,填滿 Pine 圖樣。
    1. 新增 256 x 128 白底的影像。
    2. 使用矩形選取工具,框出填圖的範圍。
    3. 設定填色工具的選項,其中,最重要的選項是,選擇Pine 圖樣。
    4. 填色工具的游標,是顏料桶。用游標,單擊矩形區域的內部,即完成填色的操作。



等價的 Python-Fu 程式碼

width = 256
height = 128
#----新增「空的」圖層,至少要三個步驟----
#Step 1. 新增影像物件
img = pdb.gimp_image_new(width, height, RGB)

#Step 2. 新增圖層物件
layer_one = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "背景顏色", 100, NORMAL_MODE)

#Step 3. 將圖層物件加入影像物件
pdb.gimp_image_add_layer(img, layer_one, 0)

pdb.gimp_display_new(img)

#----填上特定顏色,在指定的範圍內,至少要三個步驟----
#Step 1. 設定背景顏色為白色
white = (255, 255, 255)
pdb.gimp_context_set_background(white)

#因為是作用在全新的圖層,因此這個步驟可省略
#Step 2. 指定作用的區域
#pdb.gimp_selection_all(img)

#Step 3. 使用繪圖工具,著色、填圖、或描繪
pdb.gimp_edit_fill(layer_one, BACKGROUND_FILL)

  • 把上面的程式碼,貼到 GIMP Python Console 提示符號 >>> 之後。
  • 而後,就會產生一張 256 x 128 白色底色的影像。


#----填上特定圖樣,在指定的範圍內,至少要三個步驟----
#Step 1. 指定圖樣
pdb.gimp_context_set_pattern("Pine")
#Step 2. 設定選取範圍
pdb.gimp_rect_select(img, 32, 30, 108, 90, 0, TRUE, 4)
#Step 3. 填上圖樣
#pdb.gimp_edit_fill(layer_one, PATTERN_FILL)
pdb.gimp_bucket_fill(layer_one, PATTERN_BUCKET_FILL, NORMAL_MODE, 100, 15, FALSE, 0, 0)

  • 把上面的程式碼,貼到 GIMP Python Console 提示符號 >>> 之後。
  • 而後,就會在矩形區域內,填滿 Pine 圖樣。
  • 下圖是 pdb.gimp_bucket_fill() 的效果。



gimp-edit-fill vs. gimp-bucket-fill
  • 有選取區域時,這兩個函數的效果,是不一樣的。
  • 下圖是 pdb.gimp_edit_fill() 的效果。