[Part I. GIMP基礎功]

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



10.3 圖解「凹凸貼圖」與「報紙印刷」的操作

  • 凹凸貼圖濾鏡,位於「濾鏡 / 映射」選單內。
  • 報紙印刷濾鏡,位於「濾鏡 / 扭曲」選單內。


參數設定的解說
  • 之後的範例,多只用文字,描述濾鏡參數的設定方式,而不會有對話盒的附圖。
  • 本節以圖片說明,凹凸貼圖與報紙印刷對話盒的操作方式。


以「畫框」範例的最後步驟,解說凹凸貼圖濾鏡

pattern圖層


bw_frame圖層

  • 影像檔frame.xcf有pattern與bw_frame兩個圖層。
  • 對pattern圖層,執行凹凸貼圖濾鏡,Bump map映射圖設為bw_frame圖層。其餘參數採用預設值。


測試凹凸貼圖濾鏡
  • 「凹凸貼圖」濾鏡的英文名稱為「Bump Map」,此濾鏡最重要的參數是「Bump map」,要選定一個圖層作為映射圖,映射圖決定了凹陷、凸起的位置與份量。



測試報紙印刷濾鏡,要有灰色的影像
  • 產生128x128新影像。
  • 將影像填上(192,192,192)的灰色。
  • 以下,使用這張灰色的影像,測試報紙印刷濾鏡。



在報紙印刷濾鏡的對話盒內,點選 Intensity 選項
  • 對於灰階影像,可點選 Intensity 選項。
  • 描繪斑點函式設為圓形。



在報紙印刷濾鏡的對話盒內,點選 CMYK 選項
  • 有四個分頁「氰藍、洋紅、黃、黑」的參數要設定。
  • 因為有黑色分量,因此,能表現出規則的白色圓點。



在報紙印刷濾鏡的對話盒內,點選 RGB 選項
  • 有三個分頁「紅、綠、藍」的參數要設定。
  • 若將三個角度值設相同,則出現規則的黑色圓點。
  • 紅、綠、藍三個分量的角度參數,預設值為15、75、0。
  • 因此,出現三種顏色的的圓點,如下圖所示。



測試報紙印刷濾鏡,要有模糊的區域
  • 新增長寬128x128的影像,中間填上純黑色。
  • 執行「報紙印刷濾鏡」,黑色區域無法產生斑點。

  • 執行「高斯模糊濾鏡」,模糊半徑設10。




  • 再執行「報紙印刷濾鏡」,紅綠藍三個分頁的參數設相同。







測試「凹凸貼圖」濾鏡,等價的 Python-Fu 程式碼



測試「報紙印刷」濾鏡,等價的 Python-Fu 程式碼
  • 因為測試用的影像,與前面的圖,略微有些不同,結果也略微不同。
  • 下圖為 Python Code 所產生的測試用的影像。

  • 下面的程式碼,分成兩部份:
    1. 產生測試用的影像
    2. 測試報紙印刷濾鏡

# Part 1. 產生測試用的影像
width = 128; height = 128
img = pdb.gimp_image_new(width, height, RGB)
drw = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "Background", 100, NORMAL_MODE)
pdb.gimp_image_add_layer(img, drw, 0)
pdb.gimp_display_new(img)
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 白色底圖
pdb.gimp_context_set_background(white)
pdb.gimp_selection_all(img)
pdb.gimp_edit_fill(drw, BACKGROUND_FILL)
# 1 px 紅色外框線
pdb.gimp_context_set_brush("Circle (03)")
pdb.gimp_context_set_foreground(red)
pdb.gimp_selection_shrink(img, 3)
pdb.gimp_edit_stroke(drw)
pdb.gimp_selection_none(img) #釋放選取區域
# 中央的黑色方塊
pdb.gimp_context_set_foreground(black)
pdb.gimp_selection_all(img)
pdb.gimp_selection_shrink(img, 27)
pdb.gimp_edit_fill(drw, FOREGROUND_FILL)
pdb.gimp_selection_none(img)

# Part 2. 測試報紙印刷濾鏡
# 連續施加兩種濾鏡的效果
blur_radius = 10
cell_size = 10
pdb.plug_in_gauss_iir(img, drw, blur_radius, 1, 1)
pdb.plug_in_newsprint(img, drw, cell_size, 0, 0, 45.0, 3, 45.0, 0, 45.0, 0, 45.0, 0, 3)

  • 啟動 GIMP Python Console
  • 將前面的程式碼,全部選取、複製、再貼到 Python Console 提示符號 >>> 之後,按下 Enter 。
  • 過一會,就會看到結果圖。