2012-10-18 18 views
8

Ciao Sto cercando di convertire l'immagine in serie di byte per passarla in sql come byte(). Nel tentativo di utilizzare Image Converter, ma continua a non averCome convertire System.Drawing.Image in matrice di byte?

Dim converter As New ImageConverter 
nRow.Signature = converter.ConvertTo(imgSignature, TypeOf(Byte()) 

l'errore continuo a ricevere è byte è un tipo di espressione non

risposta

12

L'operatore VB.NET TypeOf non fa quello che pensi lo fa. Un po 'di confusione forse a causa dell'operatore C# typeof. L'equivalente VB.NET è la funzione GetType(). Funziona bene:

Dim converter As New ImageConverter 
nRow.Signature = converter.ConvertTo(imgSignature, GetType(Byte()) 

Il convertitore di tipi utilizza un MemoryStream per effettuare la conversione, utilizzando il formato di immagine PNG.

14

È possibile utilizzare un MemoryStream. Salvando l'immagine in un MemoryStream, è possibile ottenere l'array di byte dei dati dall'immagine:

Dim ms = new MemoryStream() 
imgSegnature.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here 
Dim bytes = ms.ToArray() 
+1

Grazie, è stato molto utile per me. –

Problemi correlati