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

VB.NET Discussion :

Insertion forme par dessus une image dans une picturebox


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Points : 32
    Points
    32
    Par défaut Insertion forme par dessus une image dans une picturebox
    Bonjour,

    Je cherche à dessiner par dessus une image existante un rectangle dont les coordonnées sont stockées dans une structure type rectangle.
    Malheureusement le résultat obtenu se retrouve masqué derrière ma picture box.
    Pourriez vous s'il vous plait m'aider ?

    Merci

  2. #2
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Bonjour

    Utiliser la bibliothèque GDI+ et utiliser comme support la picturebox en question pour dessiner dessus.

    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Imports System.Drawing
     
            Dim g = PictureBox1.CreateGraphics 'définit le support pour dessiner
            g.DrawRectangle(Pens.Red, Tonrect) 'dessine un rectangle vide (contour)
     
    'ou
            g.FillRectangle(Brushes.Red, Tonrect) 'dessine un rectangle plein
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Points : 32
    Points
    32
    Par défaut
    Merci pour la réponse.

    J'ai effectivement essayé cette option mais les objets dessinés semblent se trouver relegués en arrière plan donc masqué par l'image du picturebox. Si je tente sur un autre controle ça fonctionne.

  4. #4
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Euh ça ce n'est pas normal, car ça marche très bien.

    Es-tu sûr que tu ne redéfinis pas une de tes propriétés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PictureBox1.Image
    PictureBox1.BackgroundImage
    après avoir dessiné tes formes ? Dessines-tu sur le bon support (bonne picturebox) ?

    Hum ou sinon j'ai mon idée sur la question.

    En fait en dessinant sur l'image, il suffit d'un rafraichissement, et ton dessin disparaît. Il faut en fait dessiner directement sur l'image elle-même.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  5. #5
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Voilà qui devrait fonctionner, et garder une image même si tu rafraîchis ta form, ou met uen autre fenêtre par-dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim img As New Bitmap(PictureBox3.BackgroundImage.Width, PictureBox3.BackgroundImage.Height)
            Dim g As Graphics = Graphics.FromImage(img)
            g.DrawImage(PictureBox3.BackgroundImage, New Rectangle(0, 0, PictureBox3.BackgroundImage.Width, PictureBox3.BackgroundImage.Height), New Rectangle(0, 0, PictureBox3.BackgroundImage.Width, PictureBox3.BackgroundImage.Height), GraphicsUnit.Pixel)
     
            g.DrawRectangle(Pens.Red, Tonrect)
            g.FillRectangle(Brushes.Red, Tonrect)
     
            PictureBox3.BackgroundImage = img
    Tu noteras que j'ai mis l'image en BackgroundImage.
    Si tu met ton image sur Image, il faut que tu remplaces dans le bout de code.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Points : 32
    Points
    32
    Par défaut
    Super, ça fonctionne. Merci beaucoup

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    sinon plus couramment on dessine dans l'évènement paint, comme ca on peut mettre ce qu'on veut dans image et/ou backgroundimage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private sub dessine(sender as object, e as painteventargs) handles monpicturebox.paint
        e.graphics.Drawrectangle(...)
    end sub

    à voir selon l'utilité de figer la chose ou non
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. [MySQL] Insertion d'une image dans une div d'une news
    Par godsilken50 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/05/2007, 16h58
  3. Mettre une Image dans une Image
    Par shadowhocine dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/12/2006, 18h40
  4. Réponses: 3
    Dernier message: 30/10/2006, 11h21
  5. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

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