C# 图像到字节数组-外部异常

C# 图像到字节数组-外部异常,c#,image,C#,Image,我试图用读卡器从EID中读取一个图像,并将其转换为用于数据库存储的字节数组 阅读图像效果很好。我能够检索具有以下属性的有效图像: 但是,我无法将其转换为字节数组。我正在使用这段代码,尽管我已经尝试过其他方法来转换它: public static byte[] ImageToBytes(Image image) { MemoryStream stream = new MemoryStream(); image.Save(stream, System.Drawing.Imaging

我试图用读卡器从EID中读取一个图像,并将其转换为用于数据库存储的字节数组

阅读图像效果很好。我能够检索具有以下属性的有效图像:

但是,我无法将其转换为字节数组。我正在使用这段代码,尽管我已经尝试过其他方法来转换它:

public static byte[] ImageToBytes(Image image)
{
    MemoryStream stream = new MemoryStream();
    image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
    return stream.ToArray();

}
调用Save方法会出现以下异常:

An exception of type 'System.Runtime.InteropServices.ExternalException' occurred in System.Drawing.dll but was not handled in user code
例外情况的细节并没有澄清任何问题。这是一个普遍的例外,没有关于出错原因的信息

你知道我做错了什么吗?

你可能使用了错误的
ImageFormat
文档中提到,如果使用错误的
ImageFormat
调用
.Save()
,将引发
ExternalException

如果将
System.Drawing.Imaging.ImageFormat.Bmp更改为
image.RawFormat

示例:

public static byte[] ImageToBytes(Image image)
{
    MemoryStream stream = new MemoryStream();
    image.Save(stream, image.RawFormat);
    return stream.ToArray();

}


即使在处理图像和流时,我仍然有这个问题。列表中的所有内容都已签入。这可能会有帮助:这可能会帮助您:顺便问一下,“EID”是什么?Elektronic身份证:)