Transparence de bitmap en GDI+ - C++ - Programmation
MarshPosté le 24-01-2008 à 19:10:26
Je cherche à animer une bitmap en GDI+ (rotation surtout) en considérant tous les pixels noirs de la bitmap comme transparents. Pour ce faire, je parcours tous les pixels de la bitmap, et pour tous ceux qui sont noirs, je mets l'alpha à 0 pour obtenir la transparence voulue, et ça marche bien. Pas le choix, "MakeTransparent" n'existe pas en GDI+...
Le problème est que : - Quand je lis ma bitmap depuis un fichier: image = new Bitmap(L"MonImage.bmp" ); Ca marche très bien. Mais en fait je préfère prendre la bitmap sous forme de ressource. - Quand je lis la ressource bitmap: image = new Bitmap(hInst, MAKEINTRESOURCEW(IDB_BITMAP5)); Ca marche aussi, sauf que le bitmap n'a pas le même PixelFormat, si bien qu'il est impossible de gérer la transparence dedans. Je n'arrive pas à mettre l'alpha à 0 dans ce cas.
Pourtant, je confirme qu'il s'agit du même fichier .bmp dans les 2 cas. Toute information est la bienvenue ;-)
Marsh Posté le 24-01-2008 à 19:10:26
Je cherche à animer une bitmap en GDI+ (rotation surtout) en considérant tous les pixels noirs de la bitmap comme transparents. Pour ce faire, je parcours tous les pixels de la bitmap, et pour tous ceux qui sont noirs, je mets l'alpha à 0 pour obtenir la transparence voulue, et ça marche bien. Pas le choix, "MakeTransparent" n'existe pas en GDI+...
Le problème est que :
- Quand je lis ma bitmap depuis un fichier:
image = new Bitmap(L"MonImage.bmp" );
Ca marche très bien. Mais en fait je préfère prendre la bitmap sous forme de ressource.
- Quand je lis la ressource bitmap:
image = new Bitmap(hInst, MAKEINTRESOURCEW(IDB_BITMAP5));
Ca marche aussi, sauf que le bitmap n'a pas le même PixelFormat, si bien qu'il est impossible de gérer la transparence dedans. Je n'arrive pas à mettre l'alpha à 0 dans ce cas.
Pourtant, je confirme qu'il s'agit du même fichier .bmp dans les 2 cas.
Toute information est la bienvenue ;-)
Eric