Asp.net - classe de passage d'un fichier xml (base64) vers un fichier image

Contenu du snippet

Dans le cadre d'une utilisation de WebService pour des Produits, il est pratique de pouvoir passer d'un fichier Image vers un fichier XML en Base 64 et de pouvoir faire le chemin inverse (pour le décodage).

-------- Précision après le message posté -----------
La base de travail pour cet classe est un article trouvé sur perfectXML que j'ai transformé en VB.NET et adapté sous forme de classe :
- http://www.perfectxml.com/Answers.asp?ID=2
----------------------------------------------------------

Source / Exemple :


Imports System.Drawing
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization

Public Class FileToXML

 ' -----------------------------------------------------
 Public Shared Function FileToXML(ByVal CheminFichier As String) As String
 ' Serialization: image to XML (base64)

  Dim srcImage As Image = New Bitmap(CheminFichier)
  Dim memStream As MemoryStream = New MemoryStream()
  Dim strBuilder As StringBuilder = New StringBuilder()
  srcImage.Save(memStream, System.Drawing.Imaging.ImageFormat.Gif)
  Dim writerSerialized As StringWriter = New StringWriter(strBuilder)

  Dim writerXMLText As XmlTextWriter = New XmlTextWriter(writerSerialized)
  Dim serializerXML As XmlSerializer = New XmlSerializer(memStream.GetBuffer.GetType)
  serializerXML.Serialize(writerXMLText, memStream.GetBuffer())
  writerXMLText.Close()

  Return strBuilder.ToString()

 End Function

 ' -----------------------------------------------------
 Public Shared Function XMLToFile(ByVal StreamXMLImage As String) As Image
 ' Deserialization: XML (base64) to image
  Dim readerText As XmlTextReader = New XmlTextReader(New StringReader(StreamXMLImage))
  Dim MonStream As MemoryStream = New MemoryStream()
  Dim serializerXML As New XmlSerializer(MonStream.GetBuffer().GetType())
  Dim Buffer() As Byte = serializerXML.Deserialize(readerText)

  Dim ResultImage As Image = New Bitmap(New MemoryStream(Buffer))
  readerText.Close()

  Return ResultImage
 End Function
 ' -----------------------------------------------------

End Class

Conclusion :


Bon coding.

Romelard Fabrice (Alias F___)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.