[C# - NETCF3.5] PictureBox transparent

Résolu
neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
- 13 oct. 2008 à 12:29
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
- 20 oct. 2008 à 19:08
Bonjour, cette question étant souvent abordée, je vous la repose néanmoins avec mon code afin que l'on puisse m'expliquer et/ou corriger ce qui ne va pas.


Est-il correct d'utiliser System.Drawing.Bitmap("test.bmp") pour obtenir une image (que j'ai appelée par exemple test.bmp) contenue dans ma picturebox ou mon problème vient-il de là? Faut-il plutôt un png?


Merci d'avance à tous!





private void pictureBox1_OnPaint(object sender, EventArgs e)
        {
            // Create a red and black bitmap to demonstrate transparency.
            System.Drawing.Image bmp = new System.Drawing.Bitmap("test.bmp");
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);



            // Detect image attributes
            System.Drawing.Imaging.ImageAttributes attr = new System.Drawing.Imaging.ImageAttributes();
            // for a color from the bitmap
            attr.SetColorKey(bmp.GetPixel(0, 0), bmp.GetPixel(0, 0));
            // for a color from the system color
            // attr.SetColorKey(System.Drawing.Color.DeepPink, System.Drawing.Color.DeepPink);



            // Draw the image using the image attributes.
            System.Drawing.Rectangle rDest = new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height);
            g.DrawImage(bmp, rDest, 0, 0, bmp.Width, bmp.Height, System.Drawing.GraphicsUnit.Pixel, attr);
        }

5 réponses

cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
20 oct. 2008 à 19:08
Tout dépend des couleurs de ton png. Je dirais 24bits si celui-ci est complexe. Si tu le crées transparent pas de soucis.
La méthode SetColorKey doit fonctionner y a pas à se tortiller... cela fonctionne sur l'émulateur.
3
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
19 oct. 2008 à 01:43
Bonjour,
Et justement as-tu essayé avec une image .png ?
0
neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
3
20 oct. 2008 à 11:00
Mais pourquoi est-ce que je ne me relis pas avant de poster?!?

Merci, du coup j'ai utilisé les quelques neurones qui me restent et ca marche, en effet.
0
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
20 oct. 2008 à 16:44
C'est pas moi qui l'ai dit

Bonne continuation ++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
3
20 oct. 2008 à 18:21
Bon alors plein de nouvelles questions:



- System.Drawing.Image bmp = new System.Drawing.Bitmap("test.png");


correspond au dossier de base de mon application, juste? Parce qu'avec l'émulateur c'est ch...


- attr.SetColorKey(bmp.GetPixel(0, 0), bmp.GetPixel(0, 0));
ne veut rien savoir! je dois utiliser:
attr.SetColorKey(System.Drawing.Color.DeepPink, System.Drawing.Color.DeepPink);

en définissant la couleur de fond de ma picturebox équivalente à System.Drawing.Color.DeepPink

- pourquoi mon png apparaît-il blanc alors que la couleur de fond définie est System.Drawing.Color.DeepPink?
comment dois-je régler mon png: 8bits, 16bits, 24bits? dois-je le créer transparent ou au contraire avec le bord DeepPink???

Merci d'avance...
0