图像到字节数组 - ExternalException
Posted
技术标签:
【中文标题】图像到字节数组 - ExternalException【英文标题】:Image to byte array - ExternalException 【发布时间】:2015-04-03 06:49:57 【问题描述】:我正在尝试使用读卡器从 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
异常的细节并没有清除任何东西。这是一个普遍的例外,没有关于出了什么问题的信息。
任何想法我做错了什么?
【问题讨论】:
即使在处理图像和流时,我仍然遇到这个问题。该列表中的所有内容都已检查。 这可能会有所帮助:***.com/a/16576471/253938 这可能对你有帮助:***.com/questions/5813633/… 顺便问一下,什么是“EID”? 电子身份证:) 【参考方案1】:您可能使用了错误的ImageFormat
在 this 文档中,提到如果使用错误的 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();
【讨论】:
以上是关于图像到字节数组 - ExternalException的主要内容,如果未能解决你的问题,请参考以下文章