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 :

Enregistrer une picturebox en jpg


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Enregistrer une picturebox en jpg
    Bonjour,

    Je suis étudiant et je programme sur VB.net, j'essaie d'enregistrer un graphique qui est dans une picturebox en format jpeg.
    Auriez vous une suggestion ?
    Merci beaucoup


    Code déjà testé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    picturebox1.image.save(emplacement du fichier)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    picturebox1.save(SaveFileDialog1.FileName,system.Drawing.Imaging.ImageFormat.jpeg)

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonsoir,

    Vous y étiez presque, regardez ICI

    Il faut lui donner le nom du fichier suivit de l'extension : MonImage.jpg
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci !

    Mais à ce moment là comment fait-on pour que l'enregistrement se fasse lorsque l'on clique sur un bouton présent dans la form ou est la picturebox ?

    Public Sub butEnregistrer_Click(Byval ...., Byval e As System.EventArgs) Handles butEnregistrer.click

    J'aimerai enregistrer mon graphique à partir de cette procédure, donc comment coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub Save ( _
    	filename As String, _
    	format As ImageFormat _
            'tiré de votre lien ?
    Parce que le programme (VB 2008) me dit qu'il ne connait pas "ImageFormat", il ne me propose que "ImageFormatConverter"

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Comme celà par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim SaveDialog As New SaveFileDialog
        SaveDialog.DefaultExt = ".jpg"
        If SaveDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
            PictureBox1.Image.Save(SaveDialog.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
        End If
    End Sub
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci,

    Lors de l'exécution, le programme me signifie une NullReferenceException.

    Je n'arrive pas à gérer cette erreur.
    J'ai tout déclaré, mes objets sont également déclarés

    J'ai ajouté à la Form de la PictureBox un SaveFileDialog1.
    L'erreur se fait à ce niveau:
    pctbGraph.Image.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)

    J'ai essayé en enlevant: System.Drawing.Imaging.ImageFormat.Jpeg

    Je ne comprends pas pourquoi il y a cette erreur

    Auriez-vous une idée s'il vous plait?


    J'ai également rajouté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Dim _path As String = ""
            Dim SaveFileDialog1 As New SaveFileDialog
            With SaveFileDialog1
                .CheckFileExists = False
                .Filter = "Les fichiers image (jpg *.) | *. jpg"
                .FileName = ""
                .FilterIndex = 2
                _path = .FileName.ToString()
     
                If SaveFileDialog1.ShowDialog = DialogResult.OK Then
                    pctbGraph.Image.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
                End If
            End With
    Je ne sais pas si c'est utile de le rajouter...


    Merci

  6. #6
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonsoir,

    Si la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SaveFileDialog1.FileName
    est nul, c'est que aucun nom n'a été donné au fichier

    Ce que vous avez ajouté n'est pas forcément utile surtout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .FileName = ""
    .FilterIndex = 2
    Sinon le code que je vous ai fourni fonctionne correctement.
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,


    Merci beaucoup pour votre aide. J'ai beau assigner un nom à SaveFileDialog1, le problème reste là, la référence d'objet n'est pas définie à une instance objet. Je vais continuer à creuser.

    Merci,


    Bonne journée

  8. #8
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Bonjour,

    "la référence d'objet n'est pas définie à une instance objet" veut dire que vous faites appel à un objet non instancié.

    Pouvez vous re-poster votre code que l'on puisse vous dire d'ou cela peut provenir?
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  9. #9
    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
    quand on dessine dans un picturebox via un graphics picturebox1.image n'existe pas (vaut Nothing), et Nothing.Save n'est pas possible d'où l'erreur
    la propriété image du picturebox ne contient quelque chose que si on lui donne une image jpeg ou autre

    la méthode du dessin avec un graphics fonctionnent sur tous les controles, et tous n'ont pas une propriété image

    il faut faire un new bitmap(widht, height) puis faire un graphics = graphics.fromimage(lebitmap) (bitmap ne signifie pas ici le format bmp)
    ensuite tout ce que vous dessinez sur le graphics se dessine sur l'image
    et ca permet à la fin de faire lebitmap.save(chemin, jpeg)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre habitué Avatar de Shennong
    Homme Profil pro
    Technicien Informatique/Hotliner
    Inscrit en
    Février 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Informatique/Hotliner
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 186
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Le sujet n'étant pas résolu, j'en profite pour le continuer en posant une question dans la même lignée.

    J'ai bien réussi avec les message précédent à dessiner à main levée dans mon picturebox. La fonction pour l'enregistrer en jpeg fonctionne bien, le fichier est bien créé.

    Cependant, lorsque je clic sur le fichier pour l'ouvrir, il m'affiche juste une image toute noire. Mon "dessin" sur fond blanc de la picturebox n'apparaît pas. Quelqu'un aurait une idée svp ?

    Voici mon code :

    Pour dessiner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     If pic_Resp.Capture Then
     
                Dim NewPoint As New Point(e.X, e.Y)
                Dim newgraphic As Graphics = Graphics.FromImage(MyBitMap) 
     
                newgraphic.DrawLine(ThePen, PreviousPoint, NewPoint)  
     
                pic_Resp.Image = MyBitMap                      
     
                PreviousPoint = NewPoint
     
            End If

    Et le code pour sauvegarder :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pic_Resp.Image.Save("CHEMIN\NOM_DE_FICHIER.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

    Merci d'avance pour votre aide.

    Cordialement-

  11. #11
    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
    il faudrait plus de code pour voir d'où vient le problème

    dans le principe :
    avoir ou créer un bitmap
    graphics.fromimage
    graphics.Clear(couleur de fond souhaitée) si création d'un bitmap
    draw* dans la bonne zone (hors zone forcément ca ne se voit pas)
    save

    on ne voit pas d'où vient ton bitmap, ni si tu clear, on ne peut pas deviner si les coordonnées et si le pen (couleur et taille) son ok, et on ne voit pas à quel moment est fait le save
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Pour enregistrer le contenu de ton PictureBox (qu'il y ai du graphicPath ou autre) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Using b = New Bitmap(PictureBox1.Width, PictureBox1.Height)
            PictureBox1.DrawToBitmap(b, New Rectangle(0, 0, b.Width, b.Height))
            b.save("D:\FileName.jpeg", Imaging.ImageFormat.Jpeg)
    End Using
    End Sub
    A toi de voir ensuite pour paramétrer la qualité de ton Jpeg.

    A+

  13. #13
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    ton post est de nature à semer la confusion parce que ,comme dit par Pol6i ,ton code de dessin n'est pas communiqué !!!
    mais il y a manifestement 2 parties bien séparées dans ton problème :
    1/ le code pour dessiner sur bitmap très simple
    2/ le code pour la sauvegarde du bitmap
    3/ le code superfétatoire d'affichage sur un picturebox

  14. #14
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par MABROUKI Voir le message
    bonjour
    ton post est de nature à semer la confusion parce que ,comme dit par Pol6i ,ton code de dessin n'est pas communiqué !!!
    mais il y a manifestement 2 parties bien séparées dans ton problème :
    1/ le code pour dessiner sur bitmap très simple
    2/ le code pour la sauvegarde du bitmap
    3/ le code superfétatoire d'affichage sur un picturebox
    Euhhhhh.... a qui s adresse ce compliment.....

  15. #15
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    Pas à wallace1,mais à qui de droit c.à.d l'auteur du post évidemment !!

Discussions similaires

  1. sauvegarder une picturebox dans un fichier jpg
    Par grammaticorene dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/06/2015, 07h53
  2. Enregistrer une photo en JPG dans le bon sens ?
    Par ®om dans le forum Android
    Réponses: 2
    Dernier message: 06/09/2011, 16h13
  3. [Image] Enregistrer une image jpg
    Par younes_ dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 14/04/2011, 19h17
  4. Réponses: 3
    Dernier message: 11/12/2010, 14h18
  5. Réponses: 8
    Dernier message: 10/04/2009, 15h13

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