Bonjour,
Je souhaite afficher une image bitmap sur une form, et je rencontre un problème avec les transparences.
J'ai cherché un peu sur le net, et j'ai cru comprendre que c'est un bug de GDI+ qui colle un fond noir à la place de la transparence, et qu'il faut donc "composer" l'image dans un bitmap intermédiaire avant de l'afficher pour éviter cela. Soit.
(Je vous laisse le soin de confirmer ou non)
Quoi qu'il en soit, j'ai le même souci quand j'opère sur un bitmap de travail.
Dans le cas présent et pour l'exemple, je travaille sur un PNG-24, avec une couleur mauve comme chroma key à rendre transparente. Pour résumer j'effectue:
Par cette méthode j'obtiens du noir qui couvre mon fond jaune à la place d'une transparence. Que ce soit en affichant le bitmap de travail sur ma form ou en le sauvegardant dans un fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 mainBitmap = (Bitmap)System.Drawing.Bitmap.FromFile(FileName); //charge l'image mainBitmap.MakeTransparent(Color.FromArgb(255,0,255)); //rend le mauve transparent buffer = new Bitmap(Width, Height); //crée un bitmap de travail bufferGfx = Graphics.FromImage(buffer); bufferGfx.Clear(Color.FromArgb(255,255,0)); //remplis le bitmap d'un fond jaune bufferGfx.DrawImage(mainBitmap, 0,0); //copie mon image sur la bitmap de travail
Donc si quelqu'un à un tuyau sur le sujet je suis preneur, d'autant plus que si j'ajoute un buffer.MakeTransparent(Color.FromArgb(0,0,0)) à la fin, le noir passe bien transparent (mais du coup efface également le fond jaune, donc ça ne va pas ), c'est à n'y rien comprendre.
Je vous fait un dessin si vous voulez![]()
Partager