[Part I. GIMP基礎功]

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



11.7 利用雜點濾鏡產生材質

承接前節的結果



火山熔岩執行Gradient Map,使用German flag smooth漸層。


液態黃金、金色的絨布
執行Gradient Map,使用Golden漸層。



雨林的上空
執行Gradient Map,使用Greens漸層。



等價的 Python-Fu 程式碼
  • 前節,操作視窗介面,利用雲霧圖案產生材質。
  • 也可用程式碼得到相同結果。
  • 啟動 GIMP Python Console
  • 將下面的程式碼,全部選取、複製、再貼到 Python Console 提示符號 >>> 之後,按下 Enter 。
  • 過一會,就會看到結果圖,可改變 gradient 參數,就會得到不同的材質。

# 影像的尺寸
width = 256
height = 256

# RGB Noise 所使用的參數值
amount_r = amount_g = amount_b = 0.5
amount_a = 0

# Spread 所使用的參數值
spread_x = 5
spread_y = 5

# 高斯模糊所使用的參數值
blur_radius = 5

# 更換不同名稱的漸層,會出現不同的圖案
#gradient = "Caribbean Blues"
#gradient = "Blue Green"
gradient = "Golden"
#gradient = "German flag smooth"

img = pdb.gimp_image_new(width, height, RGB)
layer_one = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "Spread Noise", 100, NORMAL_MODE)
layer_two = 0
pdb.gimp_display_new(img)
pdb.gimp_image_add_layer(img, layer_one, 0)

color = (255, 255, 255)
pdb.gimp_context_set_background(color)
pdb.gimp_edit_fill(layer_one, BACKGROUND_FILL) #塗滿白色

pdb.plug_in_noisify(img, layer_one, FALSE, amount_r, amount_g, amount_b, amount_a)

for i in range(0,4):
  pdb.plug_in_spread(img, layer_one, spread_x, spread_y)

for i in range(0,4):
  pdb.plug_in_gauss_rle(img, layer_one, blur_radius, TRUE, TRUE)

#增強「雜訊圖案」的對比
pdb.plug_in_c_astretch(img, layer_one)

layer_two = pdb.gimp_layer_copy(layer_one, TRUE)
pdb.gimp_image_add_layer(img, layer_two, -1)
pdb.gimp_layer_set_name(layer_two, "Gradient Map")
pdb.gimp_image_set_active_layer(img, layer_two)

pdb.gimp_context_set_gradient(gradient)
pdb.plug_in_gradmap(img, layer_two)