89 votes

Algorithme de mélange de couleurs additif pour les valeurs RVB

Je cherche un algorithme pour faire un mélange de couleurs additif pour les valeurs RVB.

Est-ce aussi simple que d'ajouter les valeurs RVB ensemble à un maximum de 256 ?

(r1, g1, b1) + (r2, g2, b2) =
    (min(r1+r2, 256), min(g1+g2, 256), min(b1+b2, 256))  

9voto

Dani van der Meer Points 3981

Quelques points :

  • Je pense que vous voulez utiliser min au lieu de max
  • Je pense que vous voulez utiliser 255 au lieu de 256

Cela donnera :

(r1, g1, b1) + (r2, g2, b2) = (min(r1+r2, 255), min(g1+g2, 255), min(b1+b2, 255))

Cependant, la façon "naturelle" de mélanger les couleurs est d'utiliser la moyenne, et alors vous n'avez pas besoin du min :

(r1, g1, b1) + (r2, g2, b2) = ((r1+r2)/2, (g1+g2)/2, (b1+b2)/2)

7voto

Nedudi Points 911

Fonction Javascript pour mélanger les couleurs rgba

c1,c2 et résultat - JSON comme c1={r :0.5,g :1,b :0,a :0.33}

    var rgbaSum = function(c1, c2){
       var a = c1.a + c2.a*(1-c1.a);
       return {
         r: (c1.r * c1.a  + c2.r * c2.a * (1 - c1.a)) / a,
         g: (c1.g * c1.a  + c2.g * c2.a * (1 - c1.a)) / a,
         b: (c1.b * c1.a  + c2.b * c2.a * (1 - c1.a)) / a,
         a: a
       }
     } 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X