How to Convert System.Drawing.Image to Byte Array?
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.
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()