[Part I. GIMP基礎功]

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



15.9 小島圖樣的動態應用

  • 可利用小島的圖樣來製作球體旋轉的動畫。


島嶼的圖案
  • 先執行[影像] / 檔案 / Create / Patterns / Land,使用預設參數,產生一張島嶼的圖案,尺寸為256 x 256。


  • 使用「Bottom 複製本」圖層,來製作動畫。
  • 記得要刪除 Bottom 圖層。



旋轉吧!球體
  • 執行[影像] / 濾鏡 / 動畫 / Spinning Globe,使用預設參數。
    • 由於,原影像是正方形的,而且是無接縫的。
    • 因此,圖案產生球狀的形變。
    • 球體旋轉時,不會看到接縫,好像一顆有海洋與陸地的星球。


  • 此動畫共有10個畫格,圖層結構如下所示。


等價的 Python-Fu 程式碼
  • 由於,使用 GIMP 內建的函數產生動畫,因此,下面的程式碼,很簡短。
  • 下面的程式碼,分成三大部份:
    1. pdb.script_fu_land(...) 產生小島圖案
    2. pdb.script_fu_spinning_globe(...) 10 格的動畫
    3. pdb.file_gif_save(...) 儲存為 GIF 動畫

# Part 1. 準備好一張小島圖案的影像
gradient = "Land 1"
pdb.gimp_context_set_gradient(gradient)
pdb.script_fu_land(256, 256, 32, 4, 60, 4, 4, 4, gradient)
img_array = gimp.image_list()
# 假設最新的影像是 land 這個影像視窗
img = img_array[0]
pdb.gimp_image_flatten(img)
drw = pdb.gimp_image_active_drawable(img)

# Part 2. 產生 10 個畫格的動畫
pdb.script_fu_spinning_globe(img, drw, 10, FALSE, TRUE, 63, TRUE)

img_array = gimp.image_list()
# 假設最新的影像是旋轉球體 spinning globe 這個影像視窗
img = img_array[0]

drw = pdb.gimp_image_active_drawable(img)

# Part 3. 儲存為 GIF 動畫檔
pdb.file_gif_save(img, drw, "/tmp/land_spinning_globe2.gif", "", FALSE, TRUE, 100, 2)

  • 啟動 GIMP Python Console
  • 將前面的程式碼,全部選取、複製、再貼到 Python Console 提示符號 >>> 之後,按下 Enter 。
  • 過一會,就會看到結果圖。
  • 確定你也是在 Linux 環境下,有 /tmp 目錄。
  • 前往 /tmp 目錄,就會看到旋轉球體的動畫檔。