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 :

SAUVEGARDER UNE IMAGE ET UN GRAPHICS


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 78
    Par défaut SAUVEGARDER UNE IMAGE ET UN GRAPHICS
    Bonjour

    Je dois faire un programme avec un scanner.
    J'arrive à scanner mais sur l'image l'utilisateur doit faire des modifications, du genre surlignage annotations etc...

    L'image est dans une picturebox sur laquelle j'ai associé un objet graphics pour les modifs tous s'affiche mais au moment de la sauvegarde de l'image je n'ai que l'image original sans le graphics.

    Je voudrais savoir si il y a moyen de sauvegarder le tout ou de passer par autre chose que l'objet graphics

    Exemple

    ci j'insère un texte avec l'objet Graphics

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Picture1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Picture1.MouseUp
     
            up = New Point(e.Y, e.Y)
            r = New Rectangle(down.X, down.Y, up.X - down.X, up.Y - down.Y)
            If Stylo.Checked = True Then
                Dim s As String
                s = InputBox("Votre Texte", "Texte à afficher")
                g_PB.DrawString(s, New Font("Arial", 10), Brushes.Black, down.X, down.Y)
                g.DrawString(s, New Font("Arial", 10), Brushes.Black, down.X, down.Y)
     
            End If
    Ici je fait la sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Sauver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sauver.Click
     
     
            SFD.Title = "Sauvegarde de l'image"
            SFD.InitialDirectory = "c:\"
            SFD.Filter = "Fichier PNG (*.png)|*.png"
            If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then
                'bmp.Save("tmp.gif", System.Drawing.Imaging.ImageFormat.Jpeg)
                bmp.Save(SFD.FileName, System.Drawing.Imaging.ImageFormat.Png)
            End If
     
        End Sub
    Merci d'avance

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il est possible de faire une sauvegarde d'une image via un graphics

    d'ailleurs ceci est expliqué au moins une fois par semaine sur le forum ...

    faire un new bitmap puis un graphics.fromimage()
    ensuite tout ce qui est fait sur le graphics est aussi fait sur le bitmap
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 78
    Par défaut
    sauf que si je fait bmp.save ou graphics.save ils se sauvegarde indépendamment.
    Je voudrais les sauvegarder dans une même image

  4. #4
    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
    en fait, comme l'a dit sperot51, il faut créer le Graphics à partir de l'image, et non à partir de la PictureBox

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 78
    Par défaut
    j'ai lié mon graphics à un bmp , j'ai fait mes modifs mais rien y fait l'image finale reste l'image d'origine

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 78
    Par défaut
    Voici mon code qui montre que je lie mon graphics à mon bmp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub DisplayNativeImage()
     
            hBitmap = AxTwain1.GetHBitmap
            If bDisplayedImage Then Picture1.Image.Dispose()
            Picture1.Image = Image.FromHbitmap(hBitmap)
            bmp = New Bitmap(Image.FromHbitmap(hBitmap))
            bmp.Save("tmp.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
            g = Graphics.FromImage(bmp)
            AxTwain1.DeleteHBitmap(hBitmap)
            bDisplayedImage = True
     
     End Sub
    et voici celui de la sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Sauver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sauver.Click
     
            SFD.Title = "Sauvegarde de l'image"
            SFD.InitialDirectory = "c:\"
            SFD.Filter = "Fichier PNG (*.png)|*.png"
            If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then
                bmp.Save(SFD.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
                'bmp.Save(, System.Drawing.Imaging.ImageFormat.Png)
            End If
     
     
        End Sub

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    private bOrigine as image
    private bModif as bitmap
    private g as graphics
     
    public sub new ' ou form load ou autre
      bOrigine = image.fromfile() ' ou autre
      bModif = new bitmap(bOrigine.width,bOrigine.height)
      g = graphics.fromimage(bModif)
      g.Drawimage(bOrigine,1,1)
      Picture1.image = bModif 
     
    end sub
     
    Private Sub Picture1_MouseUp (...)
            up = New Point(e.Y, e.Y)
            r = New Rectangle(down.X, down.Y, up.X - down.X, up.Y - down.Y)
            If Stylo.Checked = True Then
                Dim s As String
                s = InputBox("Votre Texte", "Texte à afficher")
                g.DrawString(s, New Font("Arial", 10), Brushes.Black, down.X, down.Y)
            Picture1.image = bModif 
    end sub
     
     
    private sub bouton_save_click
      bModif.save()
    end sub
     
     
    private sub EffaceTexte() ' si tu veux effacer les textes ajoutés
      g.clear(picture1.backcolor)
      g.Drawimage(bOrigine,1,1)
      Picture1.image = bModif 
    end sub
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 78
    Par défaut
    Merci Sperot51

    Ca marche , l'autre problème était que ma plocie de texte était trop petite et je ne voyais pas les modifs

    Encore merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/06/2008, 20h52
  2. [ImageMagick] Sauvegarder une image dans un fichier
    Par kivan666 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/12/2006, 12h28
  3. sauvegarder une image dans un champ blob ?
    Par eric95 dans le forum Hibernate
    Réponses: 4
    Dernier message: 26/10/2006, 10h41
  4. Urgent: Sauvegarder une image sous excel
    Par aimane_z dans le forum Modules
    Réponses: 3
    Dernier message: 05/10/2006, 15h45
  5. Sauvegarder une image (.GIF/.JPG) avec CppWebBrowser
    Par Argol_Medusa dans le forum C++Builder
    Réponses: 12
    Dernier message: 12/12/2005, 11h27

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