1. 程式人生 > >Photoshop圖層混合模式的計算公式

Photoshop圖層混合模式的計算公式

PS和Nuke的疊加模式計算演算法相差甚遠,最近想在Nuke中模擬ps疊加模式。老外已經有個gizmo了麼免費的功能少,得付費購買,先百度找了下PS的圖層混合模式的計算公式收藏慢慢想想怎麼在Nuke中實現最好。

Photoshop中,圖層混合模式和圖層不透明度都是被廣泛應用的功能之一。這篇PS教程提供了各種圖層混合模式以及圖層不透明度的數學計算公式,瞭解這些公式,可以更好的掌握這些功能。

這裡寫圖片描述

註釋:

  1. 混合模式的數學計算公式,另外還介紹了不透明度。
  2. 這些公式僅適用於RGB影象,對於Lab顏色影象而言,這些公式將不再適用。
  3. 在公式中
    • A 代表下面圖層的顏色值;
    • B 代表上面圖層的顏色值;
    • C 代表混合圖層的顏色值;
    • d 表示該層的透明度。

1.Opacity 不透明度

C=d×A+(1-d)×B

相對於不透明度而言,其反義就是透明度。
這兩個術語之間的關係就類似於正負之間的關係:100%的不透明度就是0%的透明度。
該混合模式相對來說比較簡單,在該混合模式下,
如果兩個圖層的疊放順序不一樣,其結果也是不一樣的(當然50%透明除外)。
該公式也應用於層蒙板,在這種情況下,d代表了蒙板圖層中給定位置圖層的亮度(d=顏色值/255),
下同,不再敘述。

2.Darken 變暗

B<=A 則 C=B B>=A 則 C=A

該模式通過比較上下層畫素後取相對較暗的畫素作為輸出,
注意,每個不同的顏色通道的畫素都是獨立的進行比較,色彩值相對較小的作為輸出結果。
下層表示疊放次序位於下面的那個圖層,
上層表示疊放次序位於上面的那個圖層,下同,不再敘述。

3.Lighten 變亮

B<=A 則 C=A B>A 則 C=B

該模式和前面的模式是相似,不同的是取色彩值較大的(也就是較亮的)作為輸出結果。

4.Multiply 正片疊底

C=(A×B)/255

該效果將兩層畫素的標準色彩值(基於0..1之間)相乘後輸出
其效果可以形容成:兩個幻燈片疊加在一起然後放映,
透射光需要分別通過這兩個幻燈片,從而被削弱了兩次。

5.Screen 濾色

C=255-(A反相×B反相)/255

該模式和上一個模式剛好相反,
上下層畫素的標準色彩值反相後相乘後輸出,
輸出結果比兩者的畫素值都將要亮
(就好像兩臺投影機分別對其中一個圖層進行投影后,然後投射到同一個螢幕上)。
從右邊公式中我們可以看出,如果兩個圖層反相後,採用Multiply模式混合,
則將和對這兩個圖層採用 Screen模式混合後反相的結果完全一樣。

6.Color Burn 顏色加深

C=A-(A反相×B反相)/B

該模式和上一個模式剛好相反。
如果上層越暗,則下層獲取的光越少,
如果上層為全黑色,則下層越黑,
如果上層為全白色,則根本不會影響下層。
結果最亮的地方不會高於下層的畫素值。

7.Color Dodge 顏色減淡

C=A+(A×B)/B反相

該模式下,上層的亮度決定了下層的暴露程度。
如果上層越亮,下層獲取的光越多,也就是越亮。
如果上層是純黑色,也就是沒有亮度,則根本不會影響下層。
如果上層是純白色,則下層除了畫素為255的地方暴露外,
其他地方全部為白色(也就是255,不暴露)。
結果最黑的地方不會低於下層的畫素值。

8.Linear Burn 線形加深

C=A+B-255

如果上下層的畫素值之和小於255,輸出結果將會是純黑色。
如果將上層反相,結果將是純粹的數學減。

9.Linear Dodge 線形減淡

C=A+B

將上下層的色彩值相加。結果將更亮。

10.Overlay疊加

A<=128 則 C=(A×B)/255 A>128 則 C=255-(A反相×B反相)/128

依據下層色彩值的不同,該模式可能是Multiply (正片疊底),也可能是Screen (濾色)模式。
上層決定了下層中間色調偏移的強度。
如果上層為50%灰,則結果將完全為下層畫素的值。
如果上層比50%灰暗,則下層的中間色調的將向暗地方偏移,
如果上層比50%灰亮,則下層的中間色調的將向亮地方偏移。
對於上層比50%灰暗,下層中間色調以下的色帶變窄(原來為0~2×0.4×0.5,現在為0~2×0.3×0.5),
中間色調以上的色帶變寬(原來為2×0.4×0.5~1,現在為2×0.3×0.5~1)。
反之亦然。

11.Hard Light 強光

B<=128 則 C=(A×B)/128 B>128 則 C=255-(A反相×B反相)/128

該模式完全相對應於Overlay (疊加)模式下,兩個圖層進行次序交換的情況。
如過上層的顏色高於50%灰,則下層越亮,反之越暗

12.Soft Light柔光

B<=128 則 C=(A×B)/128+(A/255)^2×(255-2B) B>128 則 C=(A×B反相)/128+sqrt(A/255)×(2B-255)

該模式類似上層以Gamma值範圍為2.0到0.5的方式來調製下層的色彩值。
結果將是一個非常柔和的組合。

13.Vivid Light 亮光

B<=128 則 C=A-A反相×(255-2B)/(2B) B>128 則 C=A+A×(2B-255)/(2×B反相)

該模式非常強烈的增加了對比度,特別是在高亮和陰暗處。
可以認為是陰暗處應用Color Burn和高亮處應用Color Dodge。

14.Linear Light 線形光

C=A+2×B-255

其類似於Linear Burn,只不過是加深了上層的影響力。

15.Pin Light 點光

B<=128 則 C=Min (A,2B) B>128 則 C=Min(A,2B-255)

該模式結果就是導致中間調幾乎是不變的下層,
但是兩邊是Darken(變暗)和Lighten(變亮)模式的組合。

16.Hard Mix 實色混合

A+B>=255 則 C=255
A+B

該模式導致了最終結果僅包含6種基本顏色,每個通道要麼就是0,要麼就是255。

17.Difference 差值

C=|A-B|

上下層色調的絕對值。
該模式主要用於比較兩個不同版本的圖片。
如果兩者完全一樣,則結果為全黑。

18.Exclusion 排除

C=A+B-(A×B)/128

亮的圖片區域將導致另一層的反相,很暗的區域則將導致另一層完全沒有改變。

19.Hue 色相

HcScYc =HBSAYA

輸出影象的色調為上層,飽和度和亮度保持為下層。
對於灰色上層,結果為去色的下層。

20.Saturation 飽和度

HcScYc =HASBYA

輸出影象的飽和度為上層,色調和亮度保持為下層。

21.Color 顏色

HcScYc =HBSBYA

輸出影象的亮度為下層,色調和飽和度保持為上層。

22.Luminosity 亮度

HcScYc =HASAYB

輸出影象的亮度為上層,色調和飽和度保持為下層。

23.Dissolve 溶解

該模式根本不是真正的溶解,因此並不是適合Dissolve(溶解)這個稱謂,其表現僅僅和Normal(正常)類似。
其從上層中隨機抽取一些畫素作為透明,使其可以看到下層,
隨著上層透明度越低,可看到的下層區域越多。
如果上層完全不透明,則效果和Normal(正常)不會有任何不同。