图像到字节数组 - ExternalException

时间:2015-04-03 06:49:58

标签: c# image

我正在尝试使用读卡器从EID读取图像并将其转换为字节数组以进行数据库存储。

阅读图像非常有效。我能够使用以下属性检索有效图像: enter image description here

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

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

异常的细节不会清除任何内容。这是一个普遍的例外,没有关于出了什么问题的信息。

我一直在做错的任何想法?

1 个答案:

答案 0 :(得分:1)

您可能使用了错误的ImageFormat

this 文档中,提到如果使用错误的ExternalException调用.Save()将会引发ImageFormat

如果您将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();

}

  

enter image description here