2010-09-08 78 views
4

如果我有一個底層顏色和一個alpha值(C & A)並且想要在屏幕上創建一個自定義C & A,那麼確定必須將頂層添加爲頂層的函數是什麼底層的?,添加什麼顏色和alpha以創建所需的顏色?

編輯:

我想複製Photoshop的「正常」模式,讓我配合設計師的平面設計。

例如:

BASE LAYER rgb: 255-0-0 alpha: 51/256 

+ 

NEW LAYER rgb: ??? alpha: ??? 

= 

DESIRED LAYER rgb: 114-0-141 alpha: 92/256 

P.S:答案是0-0-255阿爾法:二百五十六分之五十一......但我只知道這是因爲我寫的問題,並在Photoshop驗證它。

回答

2

這取決於兩層之間使用的Blend Mode(底部和頂部)。維基頁面列出了您可能感興趣的一些公式。

的PDF參考手冊有一個很好的解釋太:

αřÇř = [(1 - α小號)*α b * Ç b ] + [(1-α b)* α s * C s] + α b小號 * B(C b,C 小號

其中

C = color, α = alpha value 

並且下標

R =結果,B =背景下,S =源

此外,

B(C b,C 小號)=混合模式功能

在正常混合模式的情況:B(C b,C s)= C 小號

共混阿爾法由下式給出:

αř =聯盟(α b,α小號

聯盟(B,S )= b + s - (b * s)

+0

thx該鏈接。我編輯了OP。我試圖匹配Photoshop的「正常」模式(嗯..現在弄清楚是什麼) – jedierikb 2010-09-08 18:00:40

+0

這將是正常混合模式(最常見的混合模式)。正常的混合模式不會混合,頂層上的100%不透明像素會完全遮擋下面圖層上的像素。 50%的透明像素可讓您看到下方像素的部分透明視圖。這是默認模式。 – dirkgently 2010-09-08 18:30:18

+0

唉,維基百科上正常模式的一句話描述在處理阿爾法方面並不是太有幫助......抱歉密集。 – jedierikb 2010-09-08 21:06:44

0

I th墨跡說photoshop的「正常」模式實現了Porter Duff「over」合成。然後wikipedia頁面很有用,並列出了公式,尤其是處理alpha的公式。

請注意,並非所有的解決方案都是可能的。即,所需層的α必須大於基層的α。

的解決方案可能是這樣的:

  • 確定新層的阿爾法爲(alpha_desired - alpha_base)/(1 - alpha_base)。請注意,(alpha_desired - alpha_base)必須是正數。
  • 確定新圖層的顏色,可能在可用範圍之外 - 那麼操作是不可能的。