domenica 7 ottobre 2007

Serializzare un Immagine – VB.net

Nel momento in cui nasce la necessità di inviare un Immagine mediante un programma, l’immagine viene serializzata, i dati vengono salvati in un formato tale da permettere in seguito di recuperarli.

Con l’ambiente di sviluppo di VB.net possiamo utilizzare l’interfaccia System.Runtime.Serialization.Formatters.Binary che consente ad un ogetto di controllare la propria serializzazione e deserializzazione in formato binario:

' System.IO ci servirà per la scrittura di un file XML.
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary


All’interno del progetto in VB.net integriamo una PictureBox, che conterrà l’immagine da serializzare. Insieme a questa integriamo due Button che ci serviranno per serializzare e deserializzare l’immagine all’interno della PictureBox.

All’evento click del Button “btnSerializza” inseriamo il codice:

' Per la Path del file XML.
Dim XmlFileName As String

Private Sub btnSerializza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSerializza.Click

Cursor = Cursors.WaitCursor
Refresh()

' Crea un FileStream per scriverci.
Dim fileStream As New FileStream(XmlFileName, FileMode.Create)

' Crea un formato Binario.
Dim binary_formatter As New BinaryFormatter

' Percorso e nome del file XML
XmlFileName = "C:\NomeFile.XML"

' Serializza l’immagine all’interno della PictureBox.
binary_formatter.Serialize(fileStream, picImage.Image)

' Chiesura del FileStream.
fileStream.Close()

' Cancellazione dell’immagine
picImage.Image = Nothing

Cursor = Cursors.Default

End Sub

Mentre nell’evento click di “btnDeserializza” inseriamo:

Private Sub btnDeserializza _Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeserializza.Click

Cursor = Cursors.WaitCursor
Refresh()

' Crea un FileStream per scriverci.
Dim fileStream As New FileStream(XmlFileName, FileMode.Create)

' Crea un formato Binario.
Dim binary_formatter As New BinaryFormatter

' Percorso e nome del file XML
XmlFileName = "C:\NomeFile.XML"

' Legge la Serializzazione e lo Deseializza.
picImage.Image = CType(binary_formatter.Deserialize(fileStream), Image)

' Chiesura del FileStream.
fileStream.Close()

Cursor = Cursors.Default

End Sub

1 commento:

Anonimo ha detto...

Ottimo,

Grazie per l'info :)

 
Add to Technorati Favorites