不斷疊加兩個 50% 透明的顏色是否能得到一個百分百不透明的顏色?

兩個50%透明的顏色疊加等於百分之多少透明?為什麼?不斷疊加是否能得到一個100不透明的顏色?


Alpha通道一般在計算合成圖像中使用,比如當要表現一幅圖蓋在另外一幅圖上面的時候。這樣在計算最終表現出來的顏色時,需要考慮Alpha通道和相互間的覆蓋關係,也就是說哪個是前景色哪個是背景色,誰蓋在誰上面。

計算合成圖的Alpha值,根據的就是@祝博韜 所提供的公式。他回答了第一個問題,也就是兩張50%Alpha的圖像合成出來的圖像Alpha值是75%。我們可以看看重複多次這樣的操作會怎樣。
這裡是重複二十次的結果。

可以看到第十次時,得到的Alpha已經是99.95%了。你把每次得到的Alpha值組成一個數列的話,這個數列的極限就是100%。你把前面那個公式化簡一下,把每次的50%帶入的話,它是這樣子的:
R_k=left{ egin{array}{cc}
0.5  k=1 \
0.5+0.5R_{k-1}k>=2 end{array}<br />
ight.

由於一般計算機用8bit存儲這個Alpha值,它的值只有0-255一共256種。我們把前面的結果乘以255後取整,就能得到:

從第八次以後,Alpha就全是255了。也就是@藍島島的答案中,8次疊加達到不透明的效果。

計算具體合成後的顏色和計算Alpha不大一樣。在計算Alpha時,哪個是前景哪個是背景沒什麼關係。公式裡面a_aa_b是可以互換的。我們用a表示前景,b表示背景,o表示最終結果的話。
Alpha值為:
a_o=1-(1-a_a)(1-a_b)
則色彩值
C_o=frac{{a_aC_a+(1-a_a)a_bC_b}}{a_o}
這裡面互換C_aC_b顯然是不行的。
比如半透明紅色(ARGB:127,255,0,0)和藍色(ARGB:127,0,0,255)在黑色背景(ARGB:255,0,0,0)上疊加。如果紅色在前,則顏色為:

ARGB:255,127,0,64
如果藍色在前,則為:

ARGB:255,64,0,127
前後順序不同,最終顏色也不同的。Alpha compositing


我覺得這個和軟體有關係,理論上存在一種軟體,讓你永遠也不會不透明,無論多少次。
但是從現實的角度來看,所有的計算機都在努力避免死循環,所以你肯定能夠做到不透明,只是次數多少而已。
歸根結底這是一個數學問題和邏輯問題。


永遠不會,這是個數學問題啊…………
只會不斷逼近,不會超越。


egin{cases}
alpha_a = 0.5 \
alpha_b = 0.5
end{cases} 代入 alpha_o = 1 - (1 - alpha_a) (1 - alpha_b),可以得到 alpha_0 = 0.75

參考:Alpha compositing


恭喜題主理解了極限理論的真諦。

一尺之捶,日取其半,萬世不竭。——莊子


你只需要兩個50%的透明的filter就能做成100%不透明的filter


就概率論反向思維啊 若透明度為50%,則不透明度是(1-0.5)。無數次相乘也不可能是100%啊


現存的主流圖像軟體操作和編程實踐得來的答案是可以疊加滿的


推薦閱讀:

怎麼用 Adobe Illustrator 畫出曲率連續的曲線?
月光是什麼顏色的?
如何學習色彩設計搭配?
遊戲王的戰鬥系統以目前的科技有可能實現嗎?
如何快速提高產品感?

TAG:AdobePhotoshop | 設計 | 繪畫 | 視覺設計 | 光學 |