- [須知4.寫作的習慣],以「畫框」為例,解說作者寫文章的習慣。一再強調,讀者明瞭作者的習慣,有助於文章的閱讀與學習 GIMP 的操作。
- 而這種文章的呈現方式,也有利於快速撰寫出 Script-Fu 與 Python-Fu 的程式碼。
- 下面的圖文敘述,有些在「須知4.寫作的習慣」已經出現過。
- 以兩欄的方式,解說「畫框」製作的過程,附加上「操作流程」對應的程式碼。
- 有些操作步驟,並沒有附圖。若能一步一步操作GIMP,製作出「畫框」,讀者應能看懂其他的範例。
- 附上 Script-Fu 與 Python-Fu 的程式碼,讓讀者體會程式碼的便捷之處。
畫框的製作細節,與所要放置的畫有關。 框架大小與相關參數的設定,要視實際情況而定。 |
產生一張黑色底色的新影像。 |
# 畫框的尺寸 width = 106 height = 131 img = pdb.gimp_image_new(width, height, RGB) bw_frame = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "bw_frame", 100, NORMAL_MODE) pdb.gimp_image_add_layer(img, bw_frame, 0) pdb.gimp_display_new(img) pattern_layer = 0 #將填滿黑色的動作併入下一段程式碼的 for 迴圈之內
執行[影像] / 選擇 / 全選 【註1】 , 執行[影像] / 選擇 / 縮小 【註2】 ,將選取區域往內退縮3個像素。將選取區域填上白色。 執行[影像] / 選擇 / 縮小 【註3】 ,再將選取區域往內退縮3個像素。 將選取區域填上黑色。 執行[影像] / 選擇 / 縮小 【註4】 ,再將選取區域往內退縮3個像素。將選取區域填上白色。 重複上述動作,產生黑白交替的邊框。 |
# 前景色設為黑色,背景色設為白色 black = (0, 0, 0) white = (255, 255, 255) pdb.gimp_context_set_foreground(black) pdb.gimp_context_set_background(white) pdb.gimp_selection_all(img) for i in range(0,3): #用前景色,塗滿黑色 pdb.gimp_edit_fill(bw_frame, FOREGROUND_FILL) pdb.gimp_selection_shrink(img, 3) #用背景色,塗滿白色,留下外圍的黑色邊框 pdb.gimp_edit_fill(bw_frame, BACKGROUND_FILL) pdb.gimp_selection_shrink(img, 3)
新增一個圖層,名為pattern。 使用填色工具,在選項面版內 【註5】 ,「填滿類型」設填上圖樣,使用 Parque #1 ,將圖層填滿。 |
pdb.gimp_selection_all(img) pattern_layer = pdb.gimp_layer_copy(bw_frame, TRUE) pdb.gimp_image_add_layer(img, pattern_layer, -1) pdb.gimp_layer_set_name(pattern_layer, "pattern") pdb.gimp_image_set_active_layer(img, pattern_layer) pdb.gimp_selection_all(img) pdb.gimp_context_set_pattern("Parque #1") pdb.gimp_edit_fill(pattern_layer, PATTERN_FILL) pdb.gimp_selection_none(img)
對Pattern圖層,執行[影像] / 濾鏡 / 映射 / 凹凸貼圖 【註6】 ,Bump map映射圖設為bw_frame圖層。其餘參數採用預設值。 |
bump_layer = bw_frame azimuth = 135; elevation = 45; depth = 3 pdb.plug_in_bump_map(img, pattern_layer, bump_layer, azimuth, elevation, depth, 0, 0, 0, 0, True, False, 0)
- 啟動 GIMP Python Console
- 將上面的程式碼,全部選取、複製、再貼到 Python Console 提示符號 >>> 之後,按下 Enter 。
- 過一會,就會看到結果圖。
# 畫框的尺寸 width = 106 height = 131 img = pdb.gimp_image_new(width, height, RGB) bw_frame = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "bw_frame", 100, NORMAL_MODE) pdb.gimp_image_add_layer(img, bw_frame, 0) pdb.gimp_display_new(img) pattern_layer = 0 # 前景色設為黑色,背景色設為白色 black = (0, 0, 0) white = (255, 255, 255) pdb.gimp_context_set_foreground(black) pdb.gimp_context_set_background(white) pdb.gimp_selection_all(img) for i in range(0,3): #用前景色,塗滿黑色 pdb.gimp_edit_fill(bw_frame, FOREGROUND_FILL) pdb.gimp_selection_shrink(img, 3) #用背景色,塗滿白色,留下外圍的黑色邊框 pdb.gimp_edit_fill(bw_frame, BACKGROUND_FILL) pdb.gimp_selection_shrink(img, 3) pdb.gimp_selection_all(img) pattern_layer = pdb.gimp_layer_copy(bw_frame, TRUE) pdb.gimp_image_add_layer(img, pattern_layer, -1) pdb.gimp_layer_set_name(pattern_layer, "pattern") pdb.gimp_image_set_active_layer(img, pattern_layer) pdb.gimp_selection_all(img) pdb.gimp_context_set_pattern("Parque #1") pdb.gimp_edit_fill(pattern_layer, PATTERN_FILL) pdb.gimp_selection_none(img) bump_layer = bw_frame azimuth = 135; elevation = 45; depth = 3 pdb.plug_in_bump_map(img, pattern_layer, bump_layer, azimuth, elevation, depth, 0, 0, 0, 0, True, False, 0)
選單及項目名稱的英文:
【註1】[Image] / Select / All
【註2】[Image] / Select / Shrink
【註3】[Image] / Select / Shrink
【註4】[Image] / Select / Shrink
【註5】Fill Type設Pattern fill,選Parque #1
【註6】[Image] / Filters / Map / Bump Map
關於註腳的功用請參看 1.9節。