2009-12-22 16 views
11

Come posso mescolare due pixel ARGB?Come mescolare due pixel ARGB?

Esempio

Source: en.wikipedia.org/wiki/Alpha_compositing#mediaviewer/File:Alpha_compositing.svg

Qui A è (rosso con Alpha) e B è (blu con Alpha).

+0

Questo potrebbe dare qualche indizio http://stackoverflow.com/questions/1892020/mixing-two-rgb-color-vectors-to-get-resultant sebbene sia RGB e non ARGB, il concetto è simile. –

+1

Ciao, perché FA = 19? Inoltre, che tipo di "miscelazione" intendi? Qualcosa come questo? http://lectureonline.cl.msu.edu/~mmp/applist/RGBColor/c.htm – keyboardP

+0

@ o.k.w È totalmente diverso. – SunnyShah

risposta

30

Preso dallo stesso articolo di Wikipedia dove hai preso l'immagine:

C_o = C_a \alpha_a + C_b \alpha_b \left(1 - \alpha_a\right)

Translating a valori che vanno da 0 a 255:

rOut = (rA * aA/255) + (rB * aB * (255 - aA)/(255*255)) 
gOut = (gA * aA/255) + (gB * aB * (255 - aA)/(255*255)) 
bOut = (bA * aA/255) + (bB * aB * (255 - aA)/(255*255)) 
aOut = aA + (aB * (255 - aA)/255) 
2

Sembra che questo sia ciò che si desidera: http://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending, ma sono un po 'confuso dalla notazione in quanto wikipedia dice che i valori di argb dovrebbero variare da 0.0 a 1.0. Quindi non penso che questa formula ti dia FA = 19. Puoi chiarire?

Modifica: ora che hai tirato fuori l'azienda per FA = 19, sono incline ad andare con quella formula.

+0

È possibile utilizzare anche i valori da 0 a 255 per i componenti RGB; se è necessario utilizzare i valori per calcolare qualcosa, è probabilmente meglio utilizzare valori compresi tra 0 e 255. La formula può essere modificata per funzionare con valori compresi tra 0 e 255, tuttavia. – kiamlaluno

+0

Penso che la formula si aspetti che ogni valore sia una percentuale, quindi potresti usare 0.0-1.0 per la formula e poi moltiplicare per 255 successivamente. – danben

+0

+1 per Alpha Blending. Questo sembra il metodo richiesto. – keyboardP

Problemi correlati