[Déplacé Graph -> VB.NET]GDI+ est trop générique

Signaler
Messages postés
97
Date d'inscription
mercredi 6 octobre 2010
Statut
Membre
Dernière intervention
5 juin 2015
-
 Utilisateur anonyme -
Bonjour,
Quand j'essaie de sauvegarder une image(VB.NET) avec :
Dim img As System.Drawing.Image = Image.FromFile("temp.bmp")
' ... actions sur l'image ... '
Dim ImgFormat As System.Drawing.Imaging.ImageFormat = System.Drawing.Imaging.ImageFormat.Bmp
        img.Save("temp.bmp", ImgFormat)

Visual Studio 2010 me dit :
Une exception s'est produite
type : ExternalException
message : Une erreur générique s'est produite dans GDI+
Si vous pouvez m'aider c'est ici
Merci

1 réponse


Bonsoir,

Problème récurent.
Une image chargée (dans un contrôle ou en mémoire) avec FromFile (lecture) verrouille le fichier de l'image et interdit un nouvel accès (dans ton cas tant que ta variable img existe). Donc 'Save' qui demande un nouvel accès (en écriture cette fois) sera refusé. D'où ton erreur GDI.
Il vaut mieux former un flux et charger l'image depuis ce flux. Celui-ci sera automatiquement détruit lors de l'instruction 'end using' ce qui permet de nouveaux accès au fichier.
Dim img As System.Drawing.Image
using lecteur as new io.filestream("temp.bmp", IO.FileMode.Open)
    img = image.fromstream(lecteur)
end using
img.Save("temp.bmp", Imaging.ImageFormat.Bmp)