10

Hi I'm trying to convert image to byte array to pass it into sql as byte(). Im trying to use Image Converter but it keeps failing

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

the error I keep getting is byte is a type not expression

nikeee
  • 9,289
  • 7
  • 37
  • 65
PaShKa
  • 180
  • 1
  • 3
  • 13

2 Answers2

18

You can use a MemoryStream. By saving the image into a MemoryStream, you can get the byte array of data from the image:

Dim ms = new MemoryStream()
imgSegnature.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here
Dim bytes = ms.ToArray()
Reed Copsey
  • 539,124
  • 75
  • 1,126
  • 1,354
18

The VB.NET TypeOf operator doesn't do what you think it does. Somewhat confusing perhaps due to the C# typeof operator. The VB.NET equivalent is the GetType() function. This works fine:

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

The type converter uses a MemoryStream to make the conversion, using the PNG image format.

Pierre-Loup Pagniez
  • 3,403
  • 3
  • 29
  • 29
Hans Passant
  • 897,808
  • 140
  • 1,634
  • 2,455