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 :

SaveFileDialog image sauvegarde


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut SaveFileDialog image sauvegarde
    salut
    de retour avec une autre question a la main
    voila j'ouvre une image avec OpenFileDialog ceci marche mnt je veux sauvegarder cet image soit en bmp soit en jpg avec un SaveFileDialog mais ceci me genere une exception une certaine
    "A generic error occurred in GDI+"
    j'ai parcouru le forum mais personne ne parle de cette exception c'est bizarre pour quoi moiiiiiiiiiiiiiiiiiii
    mon code est le suivant
    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
     
    Dim SD As SaveFileDialog
     
            Try
                SD = New SaveFileDialog() 'initialisation
                SD.FileName = chemin_name_image 'je l'ai recuperer depuis le         
                                                       'OpenFileDialog dans une procedure'
                SD.Title = "Save Image as..."
                SD.Filter = "image bitmap|*.bmp|image jpeg|*.jpg" 'config filtre
                SD.FilterIndex = 2
                If (SD.ShowDialog() <> Windows.Forms.DialogResult.OK) Then
                    Return
                End If
     
                If (SD.FilterIndex = 1) Then
                    image_compo.Image.Save(SD.FileName,  ImageFormat.MemoryBmp)
     
                Else
                    image_compo.Image.Save(SD.FileName, ImageFormat.Jpeg)
     
                End If
     
     
           valider_button.Enabled = False 'pour ne pas resauvegarder la meme  
                                                              image a t+1 
            Catch ex As Exception
                MsgBox(ex.Message & "image ne peut etre sauvegarder ")
            End Try
    qql a une idée svp?

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Si tu utilises ImageFormat.Bmp au lieu de ImageFormat.MemoryBmp ça donne quoi ?
    Et sinon en cherchant sur google "A generic error occurred in GDI+" on trouve plein de choses

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    Citation Envoyé par smyley Voir le message
    Si tu utilises ImageFormat.Bmp au lieu de ImageFormat.MemoryBmp ça donne quoi ?
    ca donne la meme chose
    Citation Envoyé par smyley Voir le message
    Et sinon en cherchant sur google "A generic error occurred in GDI+" on trouve plein de choses
    oui on trouve bcp et ce que j'ai compris moi c'est une question de droit sur l'emplacement où je vais sauvegarder ,je ne suis pas sur ,mais au moins je l'ai essayé sur 3 partitions :la meme chose

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par fontome_ 123 Voir le message
    oui on trouve bcp et ce que j'ai compris moi c'est une question de droit sur l'emplacement où je vais sauvegarder ,je ne suis pas sur ,mais au moins je l'ai essayé sur 3 partitions :la meme chose
    Non c'est une histoire que soit tu enregistres dans le même fichier que celui à partir duquel tu avais chargé ton image, soit que l'objet à partir duquel tu as crée ton image (par exemple, un FileStream) a été depuis fermé ... (ou des trucs du genre).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    oui peu être parcque l'image je la charge avec un openfiledialog et je la met dans picturebox apres j'essaye de la sauvegrder avec savefiledialog
    ca peut etre ca? voici le code d'ouverture
    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
     
              Dim OP As OpenFileDialog
            Try
                OP = New OpenFileDialog()
                OP.Title = "OPEN Image as..."
                OP.Filter = "image bitmap|*.bmp|image jpeg|*.jpg"
                OP.FilterIndex = 1
                If (OP.ShowDialog() <> Windows.Forms.DialogResult.OK) Then
                    ' commande de sortir de la function?
                End If
                image_compo.Load(OP.FileName().ToString)
                valider_button.Enabled = True
                Return OP.FileName
            Catch ex As Exception
                MsgBox(ex.Message & "l'image ne peut etre ouverte ")
            End Try
        End Function
    mais l'ntermediere qui est picturebox reste ouvert donc je pense pas
    pour porbabilité du meme espace j'ai deja essayé un endroit different la meme chose

  6. #6
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    En lisant ton code, je ne vois nulle part ou tu transferes ton image !!!
    Je vois juste une copie du NOM, mais pas de l'image elle même.

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Danyel Voir le message
    En lisant ton code, je ne vois nulle part ou tu transferes ton image !!!
    image_compo.Load ?

    Au fait, essayes peut être de copier les données du fichier vers un MemoryStream et de charger ton image à partir de ce dernier (qui sais ...)

  8. #8
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par smyley Voir le message
    image_compo.Load ?
    Oui peut-etre, mais il n'y a aucune definition du nom image_compo, donc pas vraiment certain.
    Deplus le code n'est pas complet, donc difficile de trouver ou ca coince.
    (genre les declarations et les public functions ...)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    bonjour a tous
    Citation Envoyé par Danyel Voir le message
    Oui peut-etre, mais il n'y a aucune definition du nom image_compo, donc pas vraiment certain.
    Deplus le code n'est pas complet, donc difficile de trouver ou ca coince.
    (genre les declarations et les public functions ...)
    enfaite
    image_compo c'est un argument de de la fonction c'est a dire que image_compo c'est le picturebox passer comme argument du form a la fonction come suite
    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
     
     
        Function ouvrir_image(ByVal image_compo As PictureBox, ByVal valider_button As Button) 'ouvrir une image bitmap
     
            Try
                'OP = New OpenFileDialog()
                OP.Title = "OPEN Image as..."
                OP.Filter = "image bitmap|*.bmp|image jpeg|*.jpg"
                OP.FilterIndex = 1
                If (OP.ShowDialog() <> Windows.Forms.DialogResult.OK) Then
                    ' commande de sortir de la function?
                End If
                image_compo.Load(OP.FileName().ToString)
                valider_button.Enabled = True
                Return SD.FileName
            Catch ex As Exception
                MsgBox(ex.Message & "l'image ne peut etre ouverte")
            End Try
        End Function
    Citation Envoyé par smyley Voir le message
    image_compo.Load ?

    Au fait, essayes peut être de copier les données du fichier vers un MemoryStream et de charger ton image à partir de ce dernier (qui sais ...)
    je vais essayer mais c'est pas évident en attendant si tu as un truc pour m'aider en ceci( memorystream) ca sera recu avec les 2 mains

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    salut
    apres qlq recherche effectué notamment sur le forum et tuto et Mr google
    j'ai trouvé ce code aparament c'est de ca que vous m'avez conseiller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Public Shared Function Image2ByteArray(ByVal img As Image) As Byte() 
     Try 
       Dim mstImage As MemoryStream = New MemoryStream 
       img.Save(mstImage, System.Drawing.Imaging.ImageFormat.Jpeg) 
       Dim bytImage As Byte() = mstImage.GetBuffer 
       Return bytImage 
     Catch ex As Exception 
       Return Nothing 
     End Try 
    End Function
    if(c'est lui) then
    je voudrais savoir l'argument img comment je peux l'initialiser avec une image pour le passer par la suite a la function
    car je fais un truc img = Drawing.Image.FromFile("c:\jolie.jpeg") mais ca marche ca plante
    else
    msgbox("help me")
    end if

  11. #11
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Non
    Je parlais d'un truc genre ça :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Image m = Image.FromFile("zefile", false);
                MemoryStream ms = new MemoryStream();
                m.Save(ms, m.RawFormat);
                ms.Position = 0;
                m.Dispose();
                Image realImage = Image.FromStream(ms);
    C'est du C#, je suis pas sure, mais mon idée est là. Vu que l'image est chargée à partir d'un objet dont on a le contrôle, GDI+ ne pourra pas la décharger et se crasher en essayant de la recharger à partir d'une source fermée (une des raisons de l'erreur "A Generic Error etc...")

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    merci smyley
    mais maintenant qui l'est chargé comment faite pour l'enregistrer, c pas compatible avec ce que j'ai
    je sais c trop demander

  13. #13
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Ben ton image c'est realImage, donc tu peut tranquillement faire realImage.Save ...
    Et n'oublies pas de faire le memoryStream (ms) quand tu n'a plus besoin de l'image (dit moi si ça marche)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    salut
    tjr ko j'ai fait ça en faite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
               Dim m As Image = Image.FromFile("c:\toto1.bmp", False)
                Dim ms As New MemoryStream
                m.Save(ms, ImageFormat.Bmp)
                ms.Position = 0
                m.Dispose()
                Dim realImage As Image = Image.FromStream(ms)
                realImage.Save("f:\toto.bmp")

  15. #15
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    ça marche pas ? ça te met quoi ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    le meme message "A generic error occurred in GDI+"
    j'aime vb.net2005 mais s'il continu comme ca je vais changé d'avis

  17. #17
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    This is madness !!
    Avec exactement le code que tu as posté ça fait encore l'erreur étrange ?!
    Mais ton image bmp, elle peut s'ouvrir avec Paint par exemple sans problème ?

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    oui oui en fait deja elle etait une gif juste pour le test je lai convertie en bmp
    donc ça s'ouvre
    ca n'as pas rapport que je suis administarteur sur mon poste ou un truc comme ca?

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 114
    Par défaut
    bon apres une long recherche a mon avis je suis obligé de passer par vb tout court si la seul solution que j'ai trouvé qu"elle marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    filecopy(fileSource,filedestination)
    vous associez mes codes de debut avec cette command au lieu de image.save()
    je sais c pas du propre mais mieux que rien
    et merci encore smyley
    je garderai un oeil qql jours de plus au cas ou il y mieux

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/12/2007, 15h52
  2. Réponses: 3
    Dernier message: 30/03/2007, 12h38
  3. [Word] Récupérer le contenu d'un doc Word (text/image) -> sauvegarder en HTML
    Par budylove dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/05/2006, 16h51
  4. [Image]sauvegarde image redimensionnée
    Par taka10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/04/2006, 11h58
  5. [Image] sauvegarde
    Par soad dans le forum Administration
    Réponses: 1
    Dernier message: 20/01/2006, 17h13

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