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

Windows Forms Discussion :

[C#] Erreur GDI+


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Ingénieur de développement
    Inscrit en
    avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : avril 2005
    Messages : 169
    Points : 96
    Points
    96
    Par défaut [C#] Erreur GDI+
    Bonjour.

    Comment faire pour eviter l'erreur GDI+ que génère le code suivant ?

    Créez une image BMP quelconque dans le repertoire C:\Temp\, nommez la Test.bmp, puis collez le code suivant derrière un bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                Image MonImage  = Image.FromFile("C:\\TEMP\\Test.Bmp");
                MonImage.Save("C:\\TEMP\\Test.Bmp");

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 176
    Points
    19 176
    Par défaut
    Quelle erreur :

  3. #3
    Membre régulier
    Profil pro
    Ingénieur de développement
    Inscrit en
    avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : avril 2005
    Messages : 169
    Points : 96
    Points
    96
    Par défaut
    Le message n'est pas réellement explicite :

    {"Une erreur générique s'est produite dans GDI+."}


    Je sais d'où vient l'erreur, mais je ne sais comment la contourner simplement !

    L'erreur vient du fait que le fichier est "lié" à l'objet.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 9 161
    Points : 19 176
    Points
    19 176
    Par défaut
    Je dirais plutôt que c'est parce que tu essayes de copier ton image sur le fichier qui est actuellement utilisé...

    Si tu essayes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Image MonImage  = Image.FromFile("C:\\TEMP\\Test.Bmp");
    MonImage.Save("C:\\TEMP\\Test2.Bmp");
    Ca devrait marcher

  5. #5
    Membre régulier
    Profil pro
    Ingénieur de développement
    Inscrit en
    avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : avril 2005
    Messages : 169
    Points : 96
    Points
    96
    Par défaut
    Je sais que cela fonctionne. Mais il faut impérativement resauvegarder avec le même nom.

    C'est là qu'est l'os !!

  6. #6
    Membre habitué Avatar de del-dongo
    Inscrit en
    mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : mai 2003
    Messages : 147
    Points : 183
    Points
    183
    Par défaut
    Effectivement, FromFile ne ferme pas le stream qui lui permet de charger ton instance de la classe Image, heureusement un des constructeurs de la classe Image prend un stream en param, il te reste à faire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.IO.FileStream fileStream = new System.IO.FileStream(@"C:\TEMP\Test.Bmp", System.IO.FileMode.Open, System.IO.FileAccess.Read);
    Image img = new Bitmap(Image.FromStream(fileStream));
    fileStream.Close();
    img.Save(@"C:\TEMP\Test.Bmp");

  7. #7
    Membre régulier
    Profil pro
    Ingénieur de développement
    Inscrit en
    avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : avril 2005
    Messages : 169
    Points : 96
    Points
    96
    Par défaut
    Super, c'est OK

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/06/2010, 15h13
  2. Erreur ObjectBusy sous GDI+
    Par mulfycrowh dans le forum C++
    Réponses: 0
    Dernier message: 31/05/2010, 20h46
  3. Erreur générique GDI+
    Par Jean-Marc68 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 01/05/2009, 15h24
  4. erreur dans GDI+
    Par beet2che dans le forum VB.NET
    Réponses: 0
    Dernier message: 16/12/2008, 15h02
  5. [C# 1.1] Erreur GDI enfin je pense
    Par notalp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/09/2006, 15h32

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