La fusion des couleurs n'est qu'une interpolation linéaire par canal, n'est-ce pas? 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.
Vérification de l'intégrité: si l'alpha est 0, RGB3 est-il identique à RGB2? Oui. Si l'alpha est 1, RGB3 est-il identique à RGB1? Oui.
Si vous avez verrouillé uniquement la couleur d'arrière-plan et la couleur finale, il existe un grand nombre de couleurs RGBA (infinies, dans un espace à virgule flottante) qui pourraient satisfaire les exigences. Vous devez donc choisir soit la couleur de la barre, soit le niveau d'opacité souhaité, et découvrir la valeur de l'autre.
Choisir la couleur basée sur Alpha
Si vous connaissez RGB3 (la couleur finale souhaitée), RGB2 (la couleur d'arrière-plan) et A1 (combien d'opacité vous voulez), et que vous recherchez simplement RGB1, nous pouvons réorganiser les équations ainsi:
r1 = (r3 - r2 + r2*a1)/a1
g1 = (g3 - g2 + g2*a1)/a1
b1 = (b3 - b2 + b2*a1)/a1
Certaines combinaisons de couleurs sont théoriquement possibles, mais impossibles compte tenu de la plage RGBA standard. Par exemple, si l'arrière-plan est d'un noir pur, que la couleur perçue souhaitée est le blanc pur et que l'alpha souhaité est de 1%, vous aurez besoin de:
r1 = g1 = b1 = 255/0.01 = 25500
… Un blanc ultra-brillant 100 fois plus brillant que tout autre disponible.
Choisir l'alpha en fonction des couleurs
Si vous connaissez RGB3 (la couleur finale souhaitée), RGB2 (la couleur d'arrière-plan) et RGB1 (la couleur dont vous souhaitez faire varier l'opacité), et que vous recherchez simplement A1, nous pouvons réorganiser le équations ainsi:
a1 = (r3-r2) / (r1-r2)
a1 = (g3-g2) / (g1-g2)
a1 = (b3-b2) / (b1-b2)
Si ceux-ci donnent des valeurs différentes, vous ne pouvez pas le faire correspondre exactement, mais vous pouvez faire la moyenne des alphas pour vous rapprocher le plus possible. Par exemple, il n'y a aucune opacité dans le monde qui vous permettra de mettre du vert sur du rouge pour obtenir du bleu.