[C# - NETCF3.5] PictureBox transparent [Résolu]

Signaler
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
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

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
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.
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
Bonjour,
Et justement as-tu essayé avec une image .png ?
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2
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.
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
C'est pas moi qui l'ai dit

Bonne continuation ++
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2
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...