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

zippedfire Messages postés 98 Date d'inscription mercredi 6 octobre 2010 Statut Membre Dernière intervention 21 novembre 2023 - 30 déc. 2011 à 11:57
 Utilisateur anonyme - 31 déc. 2011 à 00:01
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
A voir également:

1 réponse

Utilisateur anonyme
31 déc. 2011 à 00:01
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)
0
Rejoignez-nous