我想在字节数组中转换图像并将其传递给web api以在服务器上保存图像并在数据库中保存图像名称。
我已经完成了以下代码,但当我使用此块时,参数无效会出现异常 -
byte[] param contains byte array value of image from request url
using (var ms = new System.IO.MemoryStream(param))
{
var cd= Image.FromStream(ms);
//...
}
using (var ms = new System.IO.MemoryStream(param))
{
var Image= Image.FromStream(ms);
//...
}
我已尝试过在搜索中找到的解决方案,但发生了同样的错误。
任何人都可以帮我解决此错误。
答案 0 :(得分:0)
这完全取决于param
到底是什么:
原始像素数据?
您应该阅读this answer。
图片文件?
您的代码应该有效。你得到的错误可能是因为它不是。
序列化图片?
在这种情况下,您需要使用Binary
格式化程序。您可以在System.Runtime.Serialization.Formatters.Binary
命名空间中找到一个。
要从byte[]
缓冲区获取图像,您需要执行以下操作:
Image deserializedImage = null;
using (var memoryStream = new MemoryStream(bytes, false))
{
deserializedImage = (Image)formatter.Deserialize(memoryStream);
}
如果这些选项都不起作用,那么您需要调查param
生成的确切内容及其包含的数据。