libimage / le canal alpha

dernière mise à jour: 25 octobre 2013

A vrai dire, je suis un peu désolé de vous proposer une page ouaibe dont le contenu est presque totalement absent. Il faut avouer que l'écriture de cette doc devient de plus en plus bordélique. Et je n'ose pas imaginer le foutoir que ça va être quand je vais vouloir faire une traduction en anglais :)

Le deuxieme problême, et sûrement le plus grave, c'est que je n'ai jamais été fixé sur la signification d'un octet alpha: la valeur 255 est-elle transparence absolue, ou pas de transparence du tout ?

int Image_add_alpha_channel(Image_Desc *img, int value);
Rajoute un plan 'alpha' non initialisé a une image de type RGB. Retourne le code d'erreur VERY_STRANGE si il y a déja un canal alpha.
int Image_kill_alpha_channel(Image_Desc *img);
Détruit un éventuel canal 'alpha' ou retourne VERY_STRANGE en cas de doute ou d'incertitude.
int Image_RGBA_over_RGB(Image_Desc *rgba, Image_Desc *src, Image_Desc *dst);
Pour voir cette fonction en service, vous devez aller fouiller dans les sources de Debian vs. eEmpire, plus précisement dans finisher.c.
int Image_alpha_op_0(Image_Desc *src, Image_Desc *dst, int v1, int v2, int rb, int rt, int gb, int gt, int bb, int bt, int param);
given two levels by RGB component, this func build an alpha binary mask where pixels in the 3 RGB intervals have the v1 alpha value, and all others have the v2 alpha value.
C'est clair, non ?
Image_alpha_reduce(Image_Desc *src, Image_Dest *dst, int yo);
Pour chaque pixel, les valeurs r, g et b sont mises à l'échelle par la valeur alpha du pixel.
int Image_poke_alpha_from_rgb(Image_Desc *src, Image_Desc *dst, int fr, int fg, int fb, int flag);

Vous constaterez, à la lecture des lignes précédentes, que je ne sais pas encore bien gérer la transparence.

haut de page

liens

TROLL: pour l'Alpha, le mieux, c'est DEC

haut de page