Bonjour,
Je poste ce message car j'ai un petit problème
je souhaite inclure des images dans un fichier XML
j'ai donc découvert ce code:
Public Function Base64ToImage(ByVal str As String) As System.Drawing.Image
Dim ms As New System.IO.MemoryStream(Convert.FromBase64String(str))
Dim image As System.Drawing.Bitmap = CType(System.Drawing.Bitmap.FromStream(ms), Bitmap)
'image.MakeTransparent()
ms.Close()
Return image
ms = Nothing : image = Nothing
End Function
Public Function ImageToBase64(ByRef img As System.Drawing.Image) As String
Dim ms As New System.IO.MemoryStream
img.Save(ms, Imaging.ImageFormat.Jpeg)
Return Convert.ToBase64String(ms.ToArray)
ms.Close()
End Function
Ce code fonctionne, il charge correctement mais au niveau de la sauvegarde il fait des sienne.
Quand on sauvegarde une image d'une picturebox, nikel il fonctionne correctement MAIS la ou ca va pas c'est quand l'image provient de la fonction Base64ToImage, celle qui charge.
L'erreur est sur:
img.Save(ms, Imaging.ImageFormat.Jpeg)et résumé d'un simplicité extreme:
Une erreur générique s'est produite dans GDI+.(si je me souvien bien, GDI+ est ce qui gere la classe System.Drawing dont .save)
j'ai fais l'essai tout simple: 4 bouton, 1 picturebox
le premier charge une image d'un fichier sur le disque dur et la met dans la picturebox
le 2eme charge l'image d'un string (une image sous forme de chaine de caractere en base 64)
le 3eme sauvegarde l'image de la picturebox sous forme de string
la 4eme sauvegarde l'image de la picturebox sous forme de fichier
1 + 3 => fonctionne
1 + 4 => fonctionne
2 + 3 => erreur
2 + 4 => erreur
sachant que le bouton 4 contient uniquement img.Save("c:\image.jpg") on ne peut plus faire img.save quand img provient de la fonction Base64ToImage (c'est ma conclusion)
la question est simple, (la reponse surement moins), Comment corriger ce bug ?
(perso je voit pas d'erreur, pour moi un objet image est le meme, on s'en fous de sa provenance)
Merci de m'aider !
L U C Y I3 E R @ D
