Probléme enregistrement aprés modification picturebox objet graphics

Résolu
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012 - 21 févr. 2012 à 19:52
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012 - 28 févr. 2012 à 08:55
Bonjour, je suis nouvelle sur ce forum, mais j'ai tout de même chercher une réponses a mon probléme mais je n'ai pas trouvée... C'est pourquoi je vous demande de l'aide...

Je dois développer un petit programme pour faire du drag ans drop.
Pour cela je possède dans ma form deux picutrebox, le premier contient l'image à déplacer (picturebox1), et le deuxième l'image de base (picturebox2). Je m'expliques : je dois "empiler" et rajouter une image sur mon image de base.
J'ai réussi jusqu'à présent à faire ceci...
je fais glisser mon image de picturebox1 sur l'image du picturebox2, mes images se superpositionne parfaitement (visuellement).
Le probléme est que quand je veux enregistrer ma nouvelle image de picturebox2 (les deux images empilé)
celle si ne contient visiblement que l'image de base, et pas l'image qui a été rajouter.
je me retrouves avec mon image de base, sans l'image superposé...

J'ai beau chercher je ne trouves pas comment faire pour enregistrer mon image avec ses modification graphics...

Merci d'avance...

voici un bout de mon code :

   Private Sub PictureBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop


        'dans levenement drag drop du control d'arriver
        'on attribut l'image dans le picture box

        Dim picbox As PictureBox = CType(sender, PictureBox)

        Dim g As Graphics

        g = picbox.CreateGraphics()

        g.DrawImage(CType(e.Data.GetData(DataFormats.Bitmap), Image), New Point(0, 0))


        'si la touche CTRL n'ai pas enfonsé alors on supprime l'image source
        If Not e.KeyState = 8 Then
            PictureBox1.Image = Nothing

        End If

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        PictureBox2.Image.Save("C:\Users\Audrey\Desktop\nom_fichier.Jpeg")


    End Sub

12 réponses

cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
21 févr. 2012 à 23:54
Salut

peut etre sans rapport
tu peux glisser une picturebox sans le dragdrop
Private lastmouselocation As New Point
 Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)Handles PictureBox1.MouseMove
Dim pt As New Point
        pt = e.Location
        If e.Button = Windows.Forms.MouseButtons.Left Then
            pt.X = (pt.X + DirectCast(sender, PictureBox).Left) - lastmouselocation.X
            pt.Y = (pt.Y + DirectCast(sender, PictureBox).Top) - lastmouselocation.Y
            DirectCast(sender, PictureBox).Location = pt
            DirectCast(sender, PictureBox).BringToFront()
        End If
    End Sub
    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)PictureBox1.MouseDown
        lastmouselocation = e.Location
    End Sub
3
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
22 févr. 2012 à 14:35
la un lien qui peut t'aider
ici

la un code que je viens d'écrire
supperpose deux images l'un en dessous de l'autre
débutant comme toi j'apprends aussi
Private Sub JoinImage()
        Try
            Dim imageproduct As Bitmap = Image.FromFile(Application.StartupPath & "\bert.jpg")
            Dim imageproduct2 As Bitmap = Image.FromFile(Application.StartupPath & "\ernest.jpg")
            Dim size1, size2, sizefinal As New Size
            size1 = imageproduct.Size
            size2 = imageproduct2.Size

            sizefinal.Height = size1.Height + size1.Height
            sizefinal.Width = size1.Width
            Dim imgFinal As New Bitmap(sizefinal.Width, sizefinal.Height)
            Dim gfx As Graphics = Graphics.FromImage(imgFinal)
            gfx.Clear(Color.White)
            gfx.DrawImage(imageproduct, 0, 0, New Rectangle(0, 0, size1.Width, size1.Height), GraphicsUnit.Pixel)
            gfx.DrawImage(imageproduct2, New Point(0, size1.Height))
            imgFinal.Save(Application.StartupPath & "\twoimage.jpg", ImageFormat.Jpeg)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
 End Sub
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
21 févr. 2012 à 20:55
Bonjour,
si cela est du VB6 (la présente section), alors moi, je suis le Pape.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012
21 févr. 2012 à 21:22
Je me suis trompée... désolée...

Vous n'avais pas une idée pour solutionner mon probléme ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
21 févr. 2012 à 21:25
Vous n'avais pas une idée pour solutionner mon probléme ?

Ben non, puisque je fais du VB6 et non du VB.Net, moi


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012
21 févr. 2012 à 21:27
Okay... merci quand même
0
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012
22 févr. 2012 à 09:46
Bonjour, merci pour ta réponse shayW
J'ai tester le code que tu m'a envoyer il est trés intérésant pour ce que je voudrais faire. (Ajouter des images sur une image de base)
Mais j'ai toujours le même probléme.

Que ce soit avec ma solution ou la tienne, lorsque je veux enregister le contenue de ma picturebox2
j'obtient seulement limage de base... mon image mise dans la picturebox2

Ce que je voudrais c'est pouvoir enregistrer mon image (de base) avec ses modifications... c'est à dire avec les images rajouter par dessus...


Help me ...
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
22 févr. 2012 à 10:33
Salut

Oui je sais

je n'ai pas compris ta demande

tu as un picturebox avec un image qui est fixe
(le picturebox)
et une image que tu glisse et la positionne dans la picturebox de base
tu dis
Ajouter des images sur une image de base

cela veut dire que tu as deux images ?
ou
tu veux fusionner les deux images ?
0
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012
22 févr. 2012 à 10:42
oui j'ai deux images

Je veux ajouter une image de taille différente (plus petite) sur mon image de base.

J'ai enfaite une image (image de base) sur lequel je veux rajouter une image de code barre.

je voudrais pouvoir enregistrer cette nouvelle image avec ses modification. (image de base + code barre)

j'espere que j'arrive a me faire comprendre...
0
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012
28 févr. 2012 à 08:40
Bonjour, désolé ShayW, j'avais bien vu ton message au boulot, mais j'ai oublié d'y répondre.

J'ai étudié ton lien et le code que tu m'as envoyé.

J'ai comme toi réussi à mettre une image par dessus l'autre.

Mais maintenant je voudrais possitionner mon image la ou je clique, a l'endroit ou et positionner mon curseur de souris sur ma deuxiéme image.

Si tu sais comment faire ... Merci d'avance.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
28 févr. 2012 à 08:48
Ce qui, Naudrey43, se traduit par :
"le présent problème est donc résolu et je dois donc cliquer sur le tag "réponse acceptée" !

"J'en ai un autre, que j'ai exposé dans une autre discussion"

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Naudrey43 Messages postés 17 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 29 février 2012
28 févr. 2012 à 08:55
bonjour ucfoutu !

J'ai justement ouvert une autre discution, pour résoudre mon nouveau probléme.ici

Je souhaité simplement répondre à ShayW.

Cette discution est clause.

Merci pour votre aide.
0