2012-10-18 10 views
8

Witam Próbuję przekonwertować obraz na tablicę bajtów, aby przekazać ją do sql jako byte(). Im próbuje użyć Image Converter ale wciąż brakuJak konwertować System.Drawing.Image na Byte Array?

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

Błąd ciśgle jest bajt to nie rodzaj ekspresji

Odpowiedz

12

Operator typeof VB.NET nie robi tego, co myślisz, że to robi. Nieco mylące być może ze względu na operatora C# typeof. Odpowiednikiem VB.NET jest funkcja GetType(). Działa to dobrze:

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

Konwerter typów wykorzystuje metodę MemoryStream do konwersji, korzystając z formatu obrazu PNG.

14

Można użyć MemoryStream. Zapisując obraz w MemoryStream, można uzyskać tablicę bajtów danych z obrazka:

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

Dziękuję, był dla mnie bardzo pomocny. –

Powiązane problemy