Depacer un image dans une PictureBox - vbNet

cs_huntershiva Messages postés 12 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 10 mars 2010 - 22 févr. 2010 à 12:26
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 - 24 févr. 2010 à 21:07
Bonjour,
je cherche a déplacer une image dans une pictureBox mais impossible ...
sa fait des heures que je cherche.

je veut juste charger une image a des coordonnées précises ...
Comment faire ?

help *svp*

4 réponses

NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
24 févr. 2010 à 19:48
Bonjour,

Pour déplacer l'image, il faut que tu la dessine toi même :
Dans l'event Paint de ta PictureBox, tu fais :
e.Graphics.DrawImage(...)

Mon site
0
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
24 févr. 2010 à 20:19
Comme ça :

    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        'Chargement de l'image placée ici en ressource. Cette image pourrait provenir aussi d'un fichier : Dim monImage As new Bitmap(nom du fichier)
        Dim monImage As Bitmap = My.Resources.Image
        'Définition d'un bitmap et d'un graphic temporaires
        Dim bmp = New Bitmap(PictureBox1.Width, PictureBox1.Height)
        Dim grf As Graphics = Graphics.FromImage(bmp)
        'rect1= rectangle de destination (position et taille de l'image dans le picturebox)  rect2=rectangle source (taille de l'image initiale)
        Dim rect1 As New Rectangle(10, 10, 320, 240)
        Dim rect2 As New Rectangle(0, 0, monImage.Width, monImage.Height)
        'Transfert
        grf.DrawImage(monImage, rect1, rect2, GraphicsUnit.Pixel)
        'Copie du graphic vers le picturebox
        e.Graphics.DrawImage(bmp, 0, 0)
        'On purge les objets temporaires
        grf.Dispose()
        bmp.Dispose()
        monImage.Dispose()
    End Sub
0
NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
24 févr. 2010 à 20:55
Bonjour,

Pourquoi autant d'assignation ?

    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        'Chargement de l'image placée ici en ressource. Cette image pourrait provenir aussi d'un fichier : Dim monImage As new Bitmap(nom du fichier)
        Dim monImage As Bitmap = My.Resources.Image
        e.Graphics.DrawImage(monImage, OffsetX, OffsetY)
        'On purge les objets temporaires
        monImage.Dispose()
    End Sub


Mon site
0
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
24 févr. 2010 à 21:07
J'ai bêtement repris une partie de code dont je me sers parfois pour rafraîchir le contenu de certaines Form. Or j'ai généralement plusieurs objets à intégrer : images, textes et objets persos.
Pour les rectangles, ils permettent de réduire la taille d'origine de l'image (très utile).
Mais bon, je reconnais que ta méthode fonctionne parfaitement dans ce cas en ayant l'avantage d'être plus simple.
0