Le mélange des couleurs est juste une interpolation linéaire par canal, non ? Le calcul est donc assez simple. Si vous avez RGBA1 sur RGB2, le résultat visuel effectif RGB3 sera :
r3 = r2 + (r1-r2)*a1
g3 = g2 + (g1-g2)*a1
b3 = b2 + (b1-b2)*a1
où le canal alpha est compris entre 0,0 et 1,0.
Contrôle de bon sens : si l'alpha est égal à 0, RGB3 est-il identique à RGB2 ? Oui. Si l'alpha est 1, RGB3 est-il identique à RGB1 ? Oui.
Si vous ne verrouillez que la couleur d'arrière-plan et la couleur finale, il existe un grand nombre de couleurs RGBA (infinies, dans l'espace à virgule flottante) qui pourraient répondre aux exigences. Vous devez donc choisir soit la couleur de la barre, soit le niveau d'opacité que vous souhaitez, et trouver la valeur de l'autre.
Choisir la couleur en fonction de l'alpha
Si vous connaissez RVB3 (la couleur finale souhaitée), RVB2 (la couleur d'arrière-plan) et A1 (le degré d'opacité souhaité), et que vous cherchez uniquement RVB1, nous pouvons réorganiser les équations de la manière suivante :
r1 = (r3 - r2 + r2*a1)/a1
g1 = (g3 - g2 + g2*a1)/a1
b1 = (b3 - b2 + b2*a1)/a1
Il existe certaines combinaisons de couleurs qui sont théoriquement possibles, mais impossibles compte tenu de la gamme standard RGBA. Par exemple, si l'arrière-plan est noir pur, que la couleur perçue souhaitée est blanc pur et que l'alpha souhaité est de 1 %, vous aurez besoin de :
r1 = g1 = b1 = 255/0.01 = 25500
un blanc super brillant 100× plus brillant que tout ce qui existe.
Choisir l'alpha en fonction des couleurs
Si vous connaissez RVB3 (la couleur finale souhaitée), RVB2 (la couleur d'arrière-plan) et RVB1 (la couleur dont vous disposez et dont vous voulez faire varier l'opacité), et que vous cherchez uniquement A1, nous pouvons réorganiser les équations de la manière suivante :
a1 = (r3-r2) / (r1-r2)
a1 = (g3-g2) / (g1-g2)
a1 = (b3-b2) / (b1-b2)
Si ces valeurs sont différentes, vous ne pouvez pas les faire correspondre exactement, mais vous pouvez faire la moyenne des alphas pour vous en rapprocher le plus possible. Par exemple, il n'existe aucune opacité au monde qui vous permette de mettre du vert sur du rouge pour obtenir du bleu.