/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
associative alpha blending
Fra : Mike Crenshaw


Dato : 01-11-05 16:09

Hej

Jeg er ved at lave en alpha blending rutine som kan blende 2
semitransparante billeder.. jeg fandt en formel som skulle kunne gøre dette
men jeg kan ikke rigtig få det til at virke..
for at blende har jeg prøvet med formlerne beskrevet på dette site:
http://graphics.stanford.edu/papers/merging-sig81/

Min kode ser ud som følger:
....
float Cout = 0;
float Aout = 0;
float Afgd = (float)((bg_pixels[i] >> 24) & 0xFF) / 255;
float Abkg = (float)((fg_pixels[i] >> 24) & 0xFF) / 255;
int Cfgd = bg_pixels[i] & 0xFFFFFF;
int Cbkg = fg_pixels[j] & 0xFFFFFF;

Aout = (1 - (1 - Afgd) * (1 - Abkg));
Cout = (Cfgd * Afgd) + (float)((1 - Afgd) * Cbkg * Abkg) / Aout;

// eller denne formel som giver samme resultat

Aout = Afgd + (1 - Afgd) * Abkg;
Cout = (Cfgd * Afgd) + (1 - Afgd) * (Cbkg * Abkg);

pixels[i] = (int)(Aout * 255) << 24 | (int)Cout;

Nogen som kan se hvad der går galt?



 
 
Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste