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 Forms Discussion :

[C#] objet graphics dans une bitmap


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Par défaut [C#] objet graphics dans une bitmap
    Salut !!

    Je voudrais réussir à construire un rectangle rempli d'une couleur uni et en faire une image (Bitmap) pour l'ajouter dans une ImageList.
    J'utilise sur mon objet graphics les méthodes FillRectangle et DrawRectangle avec une taille suffisante pour être affiché (100 x 50 pixels) et ensuite j'appelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Graphics graph = CreateGraphics();
    graph.DrawRectangle(new Pen(Color.Black,8),5,5,100,50);
    graph.FillRectangle(new SolidBrush(Color.Blue),new Rectangle(5,5,100,50));
    Image image = new Bitmap(100,50,graph);
    imageList1.Images.Add(image);
    Dans ma listebox je vois apparaitre une ligne blanche et en dessous un image que j'ai ajouter à partir d'un image jpeg.
    Que faut-il faire poru que mon objet graphics soit correctement construit ??

    Je voudrais réaliser une légende dans une listeBox ...
    Si vous savez comment faire ??
    Merci

  2. #2
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    1 - Quand on utilise les objets Graphics, je CONSEILLE TRES VIVEMENT de les coller dans un bloc 'using'. Autre alternative : appeler 'Dispose()' quand tu ne t'en sert plus => Si tu ne les détruit pas à chaque fois, ta mémoire va se remplir, se remplir, se remplir...

    2 - Perso je fait les choses dans un autre ordre que toi et ça marche très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // je créé mon image
    Image image = new Bitmap(100,50);
    // je récupère l'objet Graphics associé à cette image
    using(Graphics graph = Graphics.FromImage(image))
    {
      // je fais mes pti dessins
      graph.DrawRectangle(new Pen(Color.Black,8),5,5,100,50);
      graph.FillRectangle(new SolidBrush(Color.Blue),new Rectangle(5,5,100,50));
    }
    // et mon image est prète à être ajoutée à mon imagelist
    imageList1.Images.Add(image);
    Pour la légende, il faut faire une image plus grande (genre 200 x 50), et dans ton bloc using, tu fait un graph.DrawString pour dessiner ta légende à droite de ton rectangle de couleur.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Par défaut
    Ah super ça marche mieux comme ça !!
    Merci pour le coup de main.

Discussions similaires

  1. Recuperation des objet ole dans une base SQL
    Par TOPGUN89 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 25/11/2005, 09h14
  2. insertion d'un objet 3D dans une video en temps réel
    Par chabfive dans le forum OpenGL
    Réponses: 5
    Dernier message: 02/11/2005, 13h10
  3. [VB.NET] Objet .Tag dans une ListView
    Par Lois dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/10/2004, 16h35
  4. Transmission d'un objet crée dans une fonction
    Par EvilAngel dans le forum ASP
    Réponses: 2
    Dernier message: 10/05/2004, 20h19
  5. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37

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