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

时间:2012-10-18 18:18:48

标签: vb.net image bytearray

您好我正在尝试将图像转换为字节数组以将其作为byte()传递给sql。我试图使用图像转换器,但它一直在失败

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

我一直得到的错误是byte是一个类型而不是表达式

2 个答案:

答案 0 :(得分:17)

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

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

答案 1 :(得分:17)

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

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

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