National Yang-Ming University + 886 2 2826 7391

Adobe Photoshop layer blending modes

Last Updated: 21 August 2015

絕大部分市面上的 Adobe Photoshop 教科書,都採用所謂「食譜」(recipe) 式的編排。換句話說,書上只會列出步驟一,步驟二,...,卻不會告訴你為什麼要做這些步驟。Layer blending 就是很好的例子。以下我嘗試從原理開始,解說一些常見圖層 blending 的使用時機。

Multiply (色彩增值)

  • Multiply an image layer by a gray layer mask of value (128,128,128),實際發生的事是將 image 圖層的每一個 pixel 的 RGB 數值都乘以 0.5。
  • 如果 multiply 的圖層是 middle gray layer (128,128,128),等於把下面的 image layer 全部 RGB 數值除以2,就是整體變暗一半
  • 如果 multiply 的圖層是全黑的 layer (0,0,0),則 blended 之後的結果會等於全黑的圖層
  • 如果 multiply 的圖層是全白的 layer (255,255,255),則 blended 之後的結果會完全等於下一圖層,i.e., 「multiply」全白的圖層等於沒有影響
  • 從下面演算法可以看出,一張 image 自己和自己 "multiply blend",暗部 (shadow region, small RGB value) 變黑的程度比亮部 (highlight region, large RGB value) 要大,其實就是把原來 pixel 的 RGB value 「二次方」。所以 "multiply blend" 多半用於還原泛白相片或 overexposed 相片的深色區域 (restore dark area in a faded or overexposed image)
  • 參考 Adobe 官方解釋,multiply 兩個顏色好比用兩個顏色的奇異筆 (magic marker) 畫在畫布上同一個位置。如果其中之一是黑色,結果就是黑色。其中之一是白色,結果寫是另一隻奇異筆的顏色。
  • 演算法如下:
    for all color channel
    final.Color = (originalColor)*(maskingColor)/255

Darken

  • Darken by (128,128,128) : 下一圖層 RGB 數值大於 128 的(比較亮的部分)會被降為 128,小於 128 (比較暗的部分)維持不變。
  • 由於每一個 color channel 分別運算,有可能導致顏色改變
  • 簡單來說,兩個圖層經過 "Darken" 運算,每一個 pixel 的 RGB 數值,就是簡單地取兩個圖層中 RGB 數值比較小(比較暗)的那一個
  • masking layer 越黑,"Darken" blending 整體結果越暗
  • 一個 image layer 自己和自己進行 "darken" blending,結果不變

Lighten

  • Lighten by (128,128,128) : 下一圖層 RGB 數值小於 128 的會被升為 128,大於 128 的會維持不變。有可能導致顏色改變。
  • 簡單來說,兩個圖層經過 "Lighten" 運算,每一個 pixel 的 RGB 數值,就是簡單地取兩個圖層中 RGB 數值比較大(比較亮)的那一個
  • 一個 image layer 自己和自己進行 "lighten" blending,結果不變

Screen (網屏)

  • Screen 和 multiply 完全相反
  • 如果 Screen 的圖層是全白的 layer (255,255,255),則 blended 之後會得到全白的 image
  • 如果 Screen 的圖層是全黑的 layer (0,0,0),則 blended 之後的結果會完全等於下一圖層,i.e., 「Screen」全黑的圖層等於沒有影響
  • "screen blend" 多半用於還原老舊相片或 underexposed 相片的白色區域 (restore highlight area in a faded or underexposed image)
  • 參考 Adobe 官方解釋,screen 兩個顏色就好像把兩個顏色做成的幻燈片投影在螢幕 (所謂 screen 的名字就是這樣來的?)。如果其中一張投影片是全黑,結果就只看得到另一張投影片的顏色。如果其中一張是全白,它會蓋過另一張的顏色,結果就是全白。
  • 演算法如下
    for all color channel
    final.Color = 255 - ((255-originalColor)*(255-maskingColor))/255

Overlap blending

  • 亮部採用 Screen blend,暗部採用 Multiply blend (Note: 亮或暗指的是 masking layer,也就是上層的顏色,不是下層的圖案)
  • 如果一個 image 自己和自己 "overlap blending",等於把暗部進行 "multiply blending",亮部進行 "screen blending",就和套用一個 S-shape 的 Curve 結果一樣
  • 演算法如下
    if (maskingColor <= 128)
    final.Color = (2*maskingColor*originalColor)/256
    else
    final.Color = 255 - 2*(255-maskingColor)*(255 - originalColor)/255

Notes

  1. 「增加一個 level adjustment layer,不調整 level,只調整 blending mode」,以上動作等於複製一個一模一樣的 layer,然後讓這兩個 layers 互相 blend。但是「複製 layer」會讓 PSD 檔變很大。
  2. 快速預視每個 blending 的效果:Cycle Through Blend Modes with the Keyboard

Examples

原圖

original

 

和自己 Multiply blend

original

 

和自己 Darken blend

original

 

和自己 Lighten blend

original

 

和自己 Screen blend

original

References

  1. Screen
  2. Multiple
  3. Blend modes