- 在此提醒讀者,之後的範例,圖層的操作,多不會詳細說明。
- 本節之中,提供圖層融合的範例,讓讀者練習基本的操作技巧。
- 可在影像視窗內,也可在圖層面版內。
- 有些功能必須在影像視窗內,例如,剪裁選擇區域。
- 有些功能必須在圖層面版內,例如,「鎖定」圖層。
- 操作圖層時,最重要的是選定所需的圖層。
- 因此,在圖層面版內,操作相關的功能,會較直觀。
- 可利用快捷鍵 Ctrl+L 來啟動圖層面版。
pencil 圖層 註,GIMP 是以棋盤方格來表示透明。 | 開啟鉛筆的影像檔,將圖層名稱更改為 pencil 。 這個鉛筆的圖案,是修改自鉛筆工具的圖示。 讀者可下載下圖,作為練習用圖。 |
新增一圖層名為 radial 。 在混色工具的選項面版內【註1】 ,「形狀」項目設為放射狀,「重複」項目設為三角形波浪紋。 前景色設為黑色,背景色設為白色。此為預設值。 使用混色工具,以鉛筆的筆尖為中心點,向外拉一小段直線。 線段的長度決定,水波狀的圓形紋路的疏密。 | 為 radial 圖層新增遮罩。 在混色工具的選項面版內 【註2】 ,「形狀」項目設為放射狀,「重複」項目設為無。 前景色設為白色,背景色設為黑色。反轉預設值。 使用混色工具,以鉛筆的筆尖為中心點,向右下角拉一條直線。 |
radial 圖層 | radial 圖層的遮罩 |
Background 圖層 | 新增一圖層名為Background,將此圖層填滿淡藍色。 |
將 radial 圖層的模式設為Grain extract,也可以試驗其它模式的效果。 也可以調整 radial 圖層的透明度,改變淡藍色背景透出的比例。 放射狀漸層的圖層遮罩,其外圍的黑色,讓圓形水波紋的外圍,漸漸變透明,讓radial 與 pencil 兩圖層的融合較自然。 |
選單及項目名稱的英文:
【註1】 Gradient設FG to BG (RGB),Shape設Radial,Repeat設Triangular wave
【註2】 Gradient設FG to BG (RGB),Shape設Radial,Repeat設None
- 下面的程式碼,分成四部份:
- 首先,載入鉛筆圖案 pencil.png ,但不產生影像視窗
- 準備好新的影像,產生藍色背景的圖層
- pdb.gimp_blend(...) 產生圓形水波紋的圖層、產生放射狀漸層的圖層遮罩
- 調整鉛筆圖案至適當位置
# Part 1. # 載入鉛筆圖案,有很多方法 # 方法 a. 使用 file_png_load ,設定正確的路徑 # img_pencil = pdb.file_png_load("/tmp/pencil.png", "") # drw_pencil = pdb.gimp_image_get_active_layer(img_pencil) # pdb.gimp_display_new(img_pencil) # 方法 b. 直接透過網路,使用 file_uri_load ,載入圖檔到影像視窗內。 file_uri = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYY5zUkojyiwEjC1KsNHCx5Lm9oNIiXtvjWa4DNoPuymvcRAfaI-n2h6YpXHX6bKp8axqJdLnzT5Psds2Lrzt24yrh0Ewls8BZ7BuzYt0KMRTQRYkf4x56Oq93UEtk-gQp7cXlwThiWRPS/s400/pencil.png" img_pencil = pdb.file_uri_load(file_uri, file_uri) drw_pencil = pdb.gimp_image_get_active_layer(img_pencil) pdb.gimp_drawable_set_name(drw_pencil, "pencil") #pdb.gimp_display_new(img_pencil)
# Part 2. # 圖片的尺寸 width = 240 height = 320 # 前景色設為黑色,背景色設為白色 black = (0, 0, 0) white = (255, 255, 255) pdb.gimp_context_set_background(black) pdb.gimp_context_set_foreground(white) img = pdb.gimp_image_new(width, height, RGB) bg_layer = pdb.gimp_layer_new(img, width, height, RGB_IMAGE, "Background", 100, NORMAL_MODE) pdb.gimp_image_add_layer(img, bg_layer, 0) # 底圖為藍色 sky_blue = (194, 226, 251) pdb.gimp_context_set_background(sky_blue) pdb.gimp_edit_fill(bg_layer, BACKGROUND_FILL) pdb.gimp_display_new(img)
# Part 3. radial_layer = pdb.gimp_layer_copy(bg_layer, TRUE) pdb.gimp_image_add_layer(img, radial_layer, -1) pdb.gimp_drawable_set_name(radial_layer, "radial") radial_mask = pdb.gimp_layer_create_mask(radial_layer, ADD_ALPHA_MASK) pdb.gimp_layer_add_mask(radial_layer, radial_mask) start_x = width * 2 / 5 start_y = height * 2 / 5 pdb.gimp_context_set_foreground(black) pdb.gimp_context_set_background(white) pdb.gimp_blend(radial_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_RADIAL, 100, 0, REPEAT_TRIANGULAR, FALSE, FALSE, 0, 0, 0, start_x, start_y, start_x + 5, start_y + 5) pdb.gimp_context_set_foreground(white) pdb.gimp_context_set_background(black) pdb.gimp_blend(radial_mask, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_RADIAL, 100, 0, REPEAT_NONE, FALSE, FALSE, 0, 0, 0, start_x, start_y, start_x + 150, start_y + 150) pdb.gimp_layer_set_mode(radial_layer, GRAIN_EXTRACT_MODE)
# Part 4. non_empty = pdb.gimp_edit_copy(drw_pencil) floating_sel = pdb.gimp_edit_paste(radial_layer, TRUE) pdb.gimp_floating_sel_to_layer(floating_sel) pdb.gimp_drawable_set_name(floating_sel, "pencil") pdb.gimp_layer_set_offsets(floating_sel, start_x, start_y - 58) # 調整鉛筆圖案至適當位置
- 啟動 GIMP Python Console
- 將前面的程式碼,依次序,全部選取、複製、再貼到 Python Console 提示符號 >>> 之後,按下 Enter 。
- 過一會,就會看到結果圖,與其圖層結構,如下圖所示。