Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

alphablend ( alpha bizarre sur certaines images )

3 réponses
Avatar
patate
Bonjour

J'utilise alphablend dans mon project actuel.
Quand je charge un TGA tout va bien. Quand je charge la meme image en png 32
bits, l'image a des problemes d'alpha ( forme translucide sur les cotés ).
D'apres ce que j'ai lu sur le msdn cela depend de comment est stocké l'alpha
dans l'image.
Quelqu'un sait il comment convertir un alpha de png en alpha compatible avec
la fonction alphablend ?

merci
pat.

3 réponses

Avatar
Christian ASTOR
patate wrote:


J'utilise alphablend dans mon project actuel.
Quand je charge un TGA tout va bien. Quand je charge la meme image en png 32
bits, l'image a des problemes d'alpha ( forme translucide sur les cotés ).
D'apres ce que j'ai lu sur le msdn cela depend de comment est stocké l'alpha
dans l'image.
Quelqu'un sait il comment convertir un alpha de png en alpha compatible avec
la fonction alphablend ?



Tu es allé voir chez F.Yuan ?
http://www.fengyuan.com/article/alphablend.html
Avatar
Christian ASTOR
patate wrote:

J'utilise alphablend dans mon project actuel.
Quand je charge un TGA tout va bien. Quand je charge la meme image en png 32
bits, l'image a des problemes d'alpha ( forme translucide sur les cotés ).
D'apres ce que j'ai lu sur le msdn cela depend de comment est stocké l'alpha
dans l'image.
Quelqu'un sait il comment convertir un alpha de png en alpha compatible avec
la fonction alphablend ?



Si je convertis le png en bmp (avec SHConvertGraphicsFile() par ex)
, AlphaBlend() marche très bien ensuite.
Avatar
patate
>
Si je convertis le png en bmp (avec SHConvertGraphicsFile() par ex)
, AlphaBlend() marche très bien ensuite.



Merci je ne connaissai pas cette fonction. Tres utile.

Au final j'ai fait comme ceci ( juste apres le chargement )
pour chaque pixel
r =( r*alpha)/255
g =(g*alpha)/255
b =(b*alpha)/255

l'alpha etant a 0 sur les zones blanches, ca les a repassées en "noir
transparent". Buffer que je place dans un nouveau hbitmap 32 bits.

pat.