如何将System.Drawing.Image转换为字节数组?

PaS*_*hKa 10 vb.net image bytearray

嗨,我正在尝试将图像转换为字节数组,将其作为byte()传递给sql.我试图使用Image Converter,但它一直在失败

Dim converter As New ImageConverter
nRow.Signature = converter.ConvertTo(imgSignature, TypeOf(Byte())
Run Code Online (Sandbox Code Playgroud)

我一直得到的错误是字节是一种类型而不是表达式

Ree*_*sey 17

你可以使用MemoryStream.通过将图像保存为a MemoryStream,您可以从图像中获取数据的字节数组:

Dim ms = new MemoryStream()
imgSegnature.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here
Dim bytes = ms.ToArray()
Run Code Online (Sandbox Code Playgroud)


Han*_*ant 17

VB.NET TypeOf运算符不会按照您的想法执行.可能由于C#typeof运算符而有些混乱.VB.NET等价物是GetType()函数.这很好用:

Dim converter As New ImageConverter
nRow.Signature = converter.ConvertTo(imgSignature, GetType(Byte()))
Run Code Online (Sandbox Code Playgroud)

类型转换器使用MemoryStream使用PNG图像格式进行转换.