IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Mobile .NET Discussion :

[C#-NETCF3.5] PictureBox transparent


Sujet :

Windows Mobile .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Par défaut [C#-NETCF3.5] PictureBox transparent
    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 l'image contenue dans ma picturebox ou mon problème vient-il de là?

    Merci d'avance à tous!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
             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);
            }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ta façon de charger le bitmap est correcte, sauf qu'il vaudrait mieux garder l'image en cache que de la recharger à chaque fois
    Par contre, tu ne dis pas quel est le problème exactement, donc c'est difficile de dire ce qui ne va pas...

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ta façon de charger le bitmap est correcte, sauf qu'il vaudrait mieux garder l'image en cache que de la recharger à chaque fois
    Par contre, tu ne dis pas quel est le problème exactement, donc c'est difficile de dire ce qui ne va pas...
    Oui, ma question n'était pas précise: mon problème est que ma picture box n'est pas transparente...

    Comment puis-je mettre mon image en cache?

    Citation Envoyé par tomlev Voir le message
    Je pense qu'un path complet vers ton fichier image serait peut être une solution à ton problème.
    Un truc du genre: App.Path (mais en C#) ? Oui ce serait une excellente idée mais ne sachant pas le faire, je ne l'ai pas codé... Ceci dit, c'est probablement pour cela que cela ne marche pas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Par défaut
    Si tu ne sais pas faire, c'est que tu n'as pas cherché non plus hein

    http://faqcsharp.developpez.com/?pag...pc_current_dir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) 
    + @"\test.bmp";
    System.Drawing.Image bmp = new System.Drawing.Bitmap(path);
    Pour ce qui est de la gestion de la tranparence regarde du côté du alpha blending :
    http://blogs.msdn.com/chrislorton/ar...07/570649.aspx

    Sinon cherche aussi dans le forum tu devrais mettre la main sur quelques samples

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu as essayé de mettre un fond transparent à ta PictureBox ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pictureBox1.BackColor = Color.Transparent;
    Mais je crois que ce genre de manip pose des problèmes avec les picturebox... essaie avec un Panel à la place si ça ne marche pas

  6. #6
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 26
    Par défaut
    Re-bonjour et merci pour vos réponses fort utiles!

    @alncool > oui bon ok, je n'ai pas cherché longtemps, je l'avoue... mais la dernière fois que j'avais utilisé cette méthode, j'avais eu une erreur (probablement due à l'absence d'une référence) et j'avais laissé tomber. En tout cas, ça marche parfaitement.

    Je vais également explorer le lien fourni pour l'alpha-blending.

    Merci à tous 2, je continue ici dès que j'ai testé...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 103
    Par défaut
    Je pense qu'un path complet vers ton fichier image serait peut être une solution à ton problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rendre le fond d'une PictureBox transparent
    Par nic076 dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/07/2011, 20h19
  2. picturebox transparent ?
    Par waste dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/10/2009, 10h17
  3. [VB .Net] Superposition deux pictureBox + transparence
    Par Damob dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/03/2006, 16h02
  4. [C#][PictureBox] Transparence
    Par joujou_le_fou dans le forum Windows Forms
    Réponses: 9
    Dernier message: 03/10/2005, 17h13
  5. Rendre le fond transparent dans une picturebox
    Par fun31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/01/2005, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo