Renk harmanlama, kanal başına yalnızca doğrusal bir enterpolasyondur, değil mi? Yani matematik oldukça basit. RGB2 üzerinden RGBA1'e sahipseniz, etkili görsel sonuç RGB3 şöyle olacaktır:
r3 = r2 + (r1-r2)*a1
g3 = g2 + (g1-g2)*a1
b3 = b2 + (b1-b2)*a1
… Alfa kanalı 0,0 ile 1,0 arasında olduğunda.
Sağlamlık kontrolü: Alfa 0 ise, RGB3 RGB2 ile aynı mıdır? Evet. Alfa 1 ise, RGB3 RGB1 ile aynı mıdır? Evet.
Yalnızca arka plan rengini ve son rengi kilitlediyseniz, gereksinimleri karşılayabilecek çok sayıda RGBA rengi (kayan nokta alanında sonsuz) vardır. Yani çubuğun rengini veya istediğiniz opaklık seviyesini seçmeli ve diğerinin değerini bulmalısınız.
Alfaya Göre Renk Seçimi
RGB3 (istenen son renk), RGB2 (arka plan rengi) ve A1'i (ne kadar opaklık istediğinizi) biliyorsanız ve sadece RGB1'i arıyorsanız, denklemleri şu şekilde yeniden düzenleyebiliriz:
r1 = (r3 - r2 + r2*a1)/a1
g1 = (g3 - g2 + g2*a1)/a1
b1 = (b3 - b2 + b2*a1)/a1
Teorik olarak mümkün olan, ancak standart RGBA aralığı göz önüne alındığında imkansız olan bazı renk kombinasyonları vardır. Örneğin, arka plan saf siyahsa, istenen algılanan renk saf beyazsa ve istenen alfa% 1 ise, şunlara ihtiyacınız olacaktır:
r1 = g1 = b1 = 255/0.01 = 25500
… Süper parlak beyaz, mevcut tüm modellerden 100 kat daha parlak.
Alfa'yı Renklere Göre Seçme
RGB3 (istenen son renk), RGB2 (arka plan rengi) ve RGB1'i (opaklığını değiştirmek istediğiniz renk) biliyorsanız ve sadece A1'i arıyorsanız, o zaman yeniden düzenleyebiliriz. dolayısıyla denklemler:
a1 = (r3-r2) / (r1-r2)
a1 = (g3-g2) / (g1-g2)
a1 = (b3-b2) / (b1-b2)
Bunlar farklı değerler verirse, tam olarak eşleşmesini sağlayamazsınız, ancak olabildiğince yakınlaşmak için alfaların ortalamasını alabilirsiniz. Örneğin, dünyada maviye dönüşmek için yeşili kırmızının üzerine koymanıza izin verecek hiçbir opaklık yoktur.