[Part I. GIMP基礎功]

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



20.1 電漿與抽象的圖案


執行[影像] / 濾鏡 / 描繪 / 雲狀 / Solid Noise 【註1】,產生灰階的霧狀效果。

Solid Noise濾鏡的「隨機化」參數,讓每次產生的圖都不一樣。

如此,會讓最終製作出來的抽象圖案,其質感不一樣。

執行[影像] / 色彩 / 界限值 【註2】,界限值範圍設102到140。

利用界限值指令,可產生黑白色塊的影像,調整「界限值範圍」,可產生不同的黑白色塊分布情況。

執行[影像] / 濾鏡 / 模糊化 / 高斯模糊 【註3】,模糊半徑設 5。

黑色與白色的分界處,變模糊。
新增透明的圖層。圖層命名為plasma。

執行[影像] / 濾鏡 / 描繪 / 雲狀 / 電漿 【註4】,參數使用預設值,產生霧狀的七彩圖案。

執行[影像] / 色彩 / 自動 / Stretch Contrast 【註5】,增強明暗對比。

兩個圖層,以差值(Difference)模式,重疊在一起,重疊後的顏色為:
  • R色版的顏色值:abs(Fr-Br)
  • G色版的顏色值:abs(Fg-Bg)
  • B色版的顏色值:abs(Fb-Bb)
符號的意義:
  • abs 表示絕對值。
  • Fr 表示上方圖層的 R 色版的顏色值。
  • Fg 表示 G 色版的顏色值。
  • Fb 表示 B 色版的顏色值。
  • Br 表示下方圖層的R色版的顏色值。
  • Bg 表示 G 色版的顏色值。
  • Bb 表示 B 色版的顏色值。

若下面圖層的顏色為白色(255,255,255),會顯示出上面圖層的互補色,相當於執行色彩反相的動作。
若下面圖層的顏色為黑色(0,0,0),會顯示出上面圖層的原本的顏色,相當於沒有做任何動作。

若下面圖層的顏色是在(128,128,128)附近的灰色,上層的顏色與之相減,再取絕對值,則顏色大都會偏黑。

因為執行過模糊濾鏡,在black_white圖層中黑白交界的顏色多在(128,128,128)附近。

這就是為何以「差值」模式重疊圖層,會出現黑色的細線,而將plasma的圖案區隔成一塊一塊的原因。


選單及項目名稱的英文:
【註1】 [Image] / Filters / Render / Clouds / Solid Noise
【註2】 [Image] / Colors / Threshold,Threshold Range設102到140
【註3】 [Image] / Filters / Blur / Gaussian Blur,Blur Radius設 5
【註4】 [Image] / Filters / Render / Clouds / Plasma
【註5】 [Image] / Colors / Auto / Stretch Contrast


等價的 Python-Fu 程式碼

# 影像的尺寸
width = 256;height = 256;
img = pdb.gimp_image_new(width, height, RGB)
layer_one = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "black_white", 100, NORMAL_MODE)
layer_two = 0
pdb.gimp_display_new(img)
pdb.gimp_image_add_layer(img, layer_one, 0)

# Solid Noise 所使用的參數值
seed = 0; detail = 1; xscale = 4; yscale = 4
pdb.plug_in_solid_noise(img, layer_one, FALSE, FALSE, seed, detail, xscale, yscale)

pdb.gimp_threshold(layer_one, 102, 140)

blur_radius = 5
pdb.plug_in_gauss_iir(img, layer_one, blur_radius, 1, 1)

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, 'plasma')
pdb.gimp_layer_set_mode(layer_two, DIFFERENCE_MODE)

# Plasma 所使用的參數值
seed = 0; turbulence = 1
pdb.plug_in_plasma(img, layer_two, seed, turbulence)

#增強「電漿圖案」的對比
pdb.plug_in_c_astretch(img, layer_two)

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