색상 혼합은 채널당 선형 보간입니다. 따라서 수학은 매우 간단합니다. RGB2보다 RGBA1이있는 경우 효과적인 시각적 결과 RGB3은 다음과 같습니다.
r3 = r2 + (r1-r2)*a1
g3 = g2 + (g1-g2)*a1
b3 = b2 + (b1-b2)*a1
… 알파 채널은 0.0에서 1.0까지입니다.
온 전성 검사 : 알파가 0이면 RGB3이 RGB2와 같습니까? 예. 알파가 1이면 RGB3이 RGB1과 동일합니까? 예.
배경색과 최종 색상 만 잠근 경우 요구 사항을 충족 할 수있는 RGBA 색상 (무한, 부동 소수점 공간)이 많이 있습니다. 따라서 막대의 색상이나 원하는 불투명도 수준을 선택하고 다른 값을 찾아야합니다.
알파를 기반으로 색상 선택
RGB3 (마지막 원하는 색상), RGB2 (배경색) 및 A1 (원하는 불투명도)을 알고 있고 RGB1을 찾고 있다면 그에 따라 방정식을 다시 정렬 할 수 있습니다.
r1 = (r3 - r2 + r2*a1)/a1
g1 = (g3 - g2 + g2*a1)/a1
b1 = (b3 - b2 + b2*a1)/a1
이론적으로는 가능하지만 표준 RGBA 범위에서는 불가능한 몇 가지 색상 조합이 있습니다. 예를 들어 배경이 순수한 검정이고 원하는 인식 색상이 순수한 흰색이고 원하는 알파가 1 % 인 경우 다음이 필요합니다.
r1 = g1 = b1 = 255/0.01 = 25500
… 사용 가능한 어떤 것보다 100 배 더 밝은 매우 밝은 흰색.
색상을 기반으로 알파 선택
RGB3 (마지막 원하는 색상), RGB2 (배경색) 및 RGB1 (불투명도를 변경하려는 색상)을 알고 있고 A1을 찾고있는 경우에는 다음을 다시 정렬 할 수 있습니다. 따라서 방정식 :
a1 = (r3-r2) / (r1-r2)
a1 = (g3-g2) / (g1-g2)
a1 = (b3-b2) / (b1-b2)
이들이 다른 값을 제공하는 경우 정확히 일치시킬 수는 없지만 가능한 한 가까워 지도록 알파의 평균을 낼 수 있습니다. 예를 들어, 파란색을 얻기 위해 빨간색 위에 녹색을 놓을 수있는 불투명도는 세상에 없습니다.