Oui, j'ai quand même une pensée pour ceux qui veulent à tout prix utiliser des images en .bmp mais qui veulent faire aussi de la transparence.
La fonction est la suivante :
1
|
int SDL_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key);
|
- surface est l'image que l'on veut traiter
- flag est la couleur de transparence : SDL_SRCCOLORKEY
- key est la couleur a remplacer par de la transparence
- retourne 0 si tout va bien, -1 sinon
Exemple :
1
2
3
4
|
SDL_Surface* image = SDL_LoadBMP("image.bmp");
Uint32 color = SDL_MapRGB(image->format, 0, 0, 255);
SDL_SetColorKey(image, SDL_SRCCOLORKEY, color);
|
On remplace le bleu par de la transparence. Ça marche aussi si vous voulez faire disparaître une couleur de n'importe quelle image.
Et on pense toujours a détruire l'image à la fin du programme, (je sais, je me répète).
|