Calcolare la risultante RGB tra 2 colori, uno è trasparente
-
29-09-2019 - |
Domanda
Sto cercando una formula per convertirli.
So di convertire una trasparenza generale, è
* alpha new + (1 - alfa) * vecchia
ho:
Color A : RGB( 85, 113, 135 )
Color B : RGB( 43, 169, 225 )
Colore A ha il 90% di opacità ed è posto sulla cima di colore B, con conseguente
Color C : RGB( 65, 119, 145 )
La mia domanda è, come si ottiene Colore C? Se io colore sostitutivo B per un'altra cosa, come faccio ad avere colori C?
Ecco un altro esempio, lo stesso colore di base:
Color A : RGB( 85, 113, 135 )
Color B : RGB( 45, 67, 82 )
--------
Color C : RGB( 65, 109, 131 )
Questi sono esempi realizzati con le immagini di lavoro -. Sto cercando di ora calcolare il restante Colore C in modo da poter assegnare un colore di sfondo
aggiornamento, vedere la risposta accettata. Il red
negli esempi di cui sopra è strano -. La risposta accettata ha la formula corretta per tutti i colori, ho provato in Photoshop
Soluzione
Sembra che la formula è proprio la formula utilizzata nei tuoi esempi, calcolato per componente, e arrotondato per eccesso.
R_C: = massimale (R_A * alpha) + soffitto (R_B * (1 - alfa))
G_c := ceiling(G_a * alpha) + ceiling (G_b * (1 - alpha))
B_c := ceiling(B_a * alpha) + ceiling (B_b * (1 - alpha))
Strano, però, la componente R non sembra seguire le regole. Sono incline a chiedersi perché.